From: kfx Date: Sun, 30 Dec 2012 14:07:35 +0000 (+0800) Subject: rk3168: ds1006h support X-Git-Tag: firefly_0821_release~8033 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3f833ed4192f6a8b7d7daad05da770ad7513b52f;p=firefly-linux-kernel-4.4.55.git rk3168: ds1006h support --- diff --git a/arch/arm/configs/rk3168_ds1006h_defconfig b/arch/arm/configs/rk3168_ds1006h_defconfig new file mode 100644 index 000000000000..d2170c6fa099 --- /dev/null +++ b/arch/arm/configs/rk3168_ds1006h_defconfig @@ -0,0 +1,433 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_LZO=y +CONFIG_LOG_BUF_SHIFT=19 +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_PANIC_TIMEOUT=1 +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_ELF_CORE is not set +CONFIG_ASHMEM=y +# CONFIG_AIO is not set +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_ARCH_RK30=y +# CONFIG_DDR_TEST is not set +CONFIG_RK_CLOCK_PROC=y +CONFIG_SOC_RK3168=y +CONFIG_MACH_RK3168_DS1006H=y +CONFIG_FIQ_DEBUGGER=y +CONFIG_FIQ_DEBUGGER_NO_SLEEP=y +CONFIG_FIQ_DEBUGGER_CONSOLE=y +CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_SMP=y +# CONFIG_SMP_ON_UP is not set +CONFIG_NR_CPUS=2 +CONFIG_PREEMPT=y +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_HIGHMEM=y +CONFIG_COMPACTION=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_WAKELOCK=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_SUSPEND_TIME=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_INET_ESP=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_IPV6=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_TUNNEL=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NETFILTER=y +# CONFIG_BRIDGE_NETFILTER is not set +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_SIP=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_REJECT_SKERR=y +CONFIG_IP_NF_TARGET_LOG=y +CONFIG_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_TARGET_LOG=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_TARGET_REJECT_SKERR=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE=y +# CONFIG_BRIDGE_IGMP_SNOOPING is not set +CONFIG_PHONET=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_INGRESS=y +CONFIG_NET_CLS_U32=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=y +CONFIG_NET_ACT_MIRRED=y +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_HIDP=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM4325=y +CONFIG_BT_AUTOSLEEP=y +CONFIG_RFKILL=y +CONFIG_RFKILL_RK=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_RKNAND=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_MISC_DEVICES=y +CONFIG_UID_STAT=y +CONFIG_APANIC=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_UEVENT=y +CONFIG_NETDEVICES=y +CONFIG_PHYLIB=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +CONFIG_WLAN_80211=y +CONFIG_RKWIFI=y +CONFIG_USB_USBNET=y +CONFIG_PPP=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_MPPE=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_KEYRESET=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=y +CONFIG_TABLET_USB_AIPTEK=y +CONFIG_TABLET_USB_GTCO=y +CONFIG_TABLET_USB_HANWANG=y +CONFIG_TABLET_USB_KBTAB=y +CONFIG_TABLET_USB_WACOM=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_CT36X_TS=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_COMPASS_AK8975=y +CONFIG_GS_MMA8452=y +CONFIG_GS_LIS3DH=y +CONFIG_GYRO_L3G4200D=y +CONFIG_LS_CM3217=y +CONFIG_SENSOR_DEVICE=y +CONFIG_GSENSOR_DEVICE=y +CONFIG_GS_KXTIK=y +CONFIG_COMPASS_DEVICE=y +CONFIG_GYROSCOPE_DEVICE=y +CONFIG_LIGHT_DEVICE=y +CONFIG_LS_AL3006=y +CONFIG_LS_STK3171=y +CONFIG_PROXIMITY_DEVICE=y +CONFIG_PS_AL3006=y +CONFIG_PS_STK3171=y +# CONFIG_SERIO is not set +# CONFIG_CONSOLE_TRANSLATIONS is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_RK29=y +CONFIG_UART0_RK29=y +CONFIG_UART0_CTS_RTS_RK29=y +CONFIG_UART3_RK29=y +CONFIG_UART3_CTS_RTS_RK29=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C0_CONTROLLER_RK30=y +CONFIG_I2C1_CONTROLLER_RK30=y +CONFIG_I2C2_CONTROLLER_RK30=y +CONFIG_I2C3_CONTROLLER_RK30=y +CONFIG_I2C4_CONTROLLER_RK30=y +CONFIG_GPIO_SYSFS=y +CONFIG_EXPANDED_GPIO_NUM=0 +CONFIG_EXPANDED_GPIO_IRQ_NUM=0 +CONFIG_SPI_FPGA_GPIO_NUM=0 +CONFIG_SPI_FPGA_GPIO_IRQ_NUM=0 +CONFIG_POWER_SUPPLY=y +CONFIG_TEST_POWER=y +# CONFIG_HWMON is not set +CONFIG_MFD_RK610=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_ACT8846=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_VIDEO_DEV=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_OV2659=y +CONFIG_SOC_CAMERA_OV5642=y +CONFIG_VIDEO_RK29=y +CONFIG_VIDEO_RK29_CAMMEM_ION=y +CONFIG_ION=y +CONFIG_ION_ROCKCHIP=y +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_DISPLAY_SUPPORT=y +CONFIG_LCD_B101EW05=y +CONFIG_FB_ROCKCHIP=y +CONFIG_LCDC_RK3066B=y +# CONFIG_LCDC0_RK3066B is not set +CONFIG_LCDC1_RK3066B=y +CONFIG_RGA_RK30=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_SUPPORT_OLD_API is not set +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +CONFIG_SND_SOC=y +CONFIG_SND_RK29_SOC=y +CONFIG_SND_RK29_SOC_I2S_2CH=y +CONFIG_SND_I2S_DMA_EVENT_STATIC=y +CONFIG_SND_RK29_SOC_RK610=y +CONFIG_SND_RK29_CODEC_SOC_SLAVE=y +CONFIG_HID_A4TECH=y +CONFIG_HID_ACRUX=y +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=y +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=y +CONFIG_HID_ELECOM=y +CONFIG_HID_EZKEY=y +CONFIG_HID_KEYTOUCH=y +CONFIG_HID_KYE=y +CONFIG_HID_UCLOGIC=y +CONFIG_HID_WALTOP=y +CONFIG_HID_GYRATION=y +CONFIG_HID_TWINHAN=y +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=y +CONFIG_HID_LOGITECH=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWII_FF=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=y +CONFIG_HID_NTRIG=y +CONFIG_HID_ORTEK=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_PICOLCD=y +CONFIG_HID_QUANTA=y +CONFIG_HID_ROCCAT_ARVO=y +CONFIG_HID_ROCCAT_KONE=y +CONFIG_HID_ROCCAT_KONEPLUS=y +CONFIG_HID_ROCCAT_KOVAPLUS=y +CONFIG_HID_ROCCAT_PYRA=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_HID_GREENASIA=y +CONFIG_GREENASIA_FF=y +CONFIG_HID_SMARTJOYPLUS=y +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TOPSEED=y +CONFIG_HID_THRUSTMASTER=y +CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_WACOM=y +CONFIG_HID_ZEROPLUS=y +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_DEVICEFS=y +CONFIG_USB_OTG_BLACKLIST_HUB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_OPTION=y +CONFIG_USB_GADGET=y +CONFIG_USB20_HOST=y +CONFIG_USB20_OTG=y +CONFIG_MMC=y +CONFIG_MMC_UNSAFE_RESUME=y +CONFIG_MMC_EMBEDDED_SDIO=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_SDMMC_RK29=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_SWITCH=y +CONFIG_SWITCH_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HYM8563=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ANDROID_LOGGER=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +# CONFIG_CMMB is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +# CONFIG_EXT4_FS_XATTR is not set +# CONFIG_DNOTIFY is not set +CONFIG_FUSE_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_PARTITION_ADVANCED=y +CONFIG_EFI_PARTITION=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_SCHEDSTATS=y +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set +CONFIG_ENABLE_DEFAULT_TRACERS=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_TWOFISH=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/arch/arm/mach-rk30/Kconfig b/arch/arm/mach-rk30/Kconfig index 7e8a99cafed5..feaa091c3625 100755 --- a/arch/arm/mach-rk30/Kconfig +++ b/arch/arm/mach-rk30/Kconfig @@ -117,8 +117,13 @@ choice config MACH_RK3168_TB bool "RK3168 Top Board" + config MACH_RK3168_LR097 bool "RK3168 LR097 JC21CA board" + +config MACH_RK3168_DS1006H + bool "RK3168 DS1006h Board" + endchoice endif diff --git a/arch/arm/mach-rk30/Makefile b/arch/arm/mach-rk30/Makefile index 40a31d37cb90..3b2263e4703d 100755 --- a/arch/arm/mach-rk30/Makefile +++ b/arch/arm/mach-rk30/Makefile @@ -41,3 +41,4 @@ obj-$(CONFIG_MACH_RK3066B_M701) += board-rk3066b-m701.o obj-$(CONFIG_MACH_RK3108_TB) += board-rk3108-tb.o obj-$(CONFIG_MACH_RK3168_TB) += board-rk3168-tb.o obj-$(CONFIG_MACH_RK3168_LR097) += board-rk3168-LR097.o +obj-$(CONFIG_MACH_RK3168_DS1006H) += board-rk3168-ds1006h.o diff --git a/arch/arm/mach-rk30/board-rk3168-ds1006h-camera.c b/arch/arm/mach-rk30/board-rk3168-ds1006h-camera.c new file mode 100644 index 000000000000..3a166b8d6526 --- /dev/null +++ b/arch/arm/mach-rk30/board-rk3168-ds1006h-camera.c @@ -0,0 +1,485 @@ +#ifdef CONFIG_VIDEO_RK29 +/*---------------- Camera Sensor Macro Define Begin ------------------------*/ +/*---------------- Camera Sensor Configuration Macro Begin ------------------------*/ +#define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV5640 /* back camera sensor */ +#define CONFIG_SENSOR_IIC_ADDR_0 0x78 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_0 3 +#define CONFIG_SENSOR_ORIENTATION_0 90 +#define CONFIG_SENSOR_POWER_PIN_0 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_0 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_0 RK30_PIN3_PB5 +#define CONFIG_SENSOR_FALSH_PIN_0 RK30_PIN0_PD5 //INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_0 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_0 30000 + +#define CONFIG_SENSOR_01 RK29_CAM_SENSOR_OV5642 /* back camera sensor 1 */ +#define CONFIG_SENSOR_IIC_ADDR_01 0x00 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_01 4 +#define CONFIG_SENSOR_ORIENTATION_01 90 +#define CONFIG_SENSOR_POWER_PIN_01 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_01 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_01 RK30_PIN1_PD6 +#define CONFIG_SENSOR_FALSH_PIN_01 INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_01 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_01 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_01 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_01 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_01 30000 + +#define CONFIG_SENSOR_02 RK29_CAM_SENSOR_OV5640 /* back camera sensor 2 */ +#define CONFIG_SENSOR_IIC_ADDR_02 0x00 +#define CONFIG_SENSOR_CIF_INDEX_02 0 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_02 4 +#define CONFIG_SENSOR_ORIENTATION_02 90 +#define CONFIG_SENSOR_POWER_PIN_02 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_02 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_02 INVALID_GPIO +#define CONFIG_SENSOR_FALSH_PIN_02 INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_02 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_02 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_02 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_02 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_02 30000 + +#define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659 /* front camera sensor 0 */ +#define CONFIG_SENSOR_IIC_ADDR_1 0x60 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_1 3 +#define CONFIG_SENSOR_ORIENTATION_1 90 +#define CONFIG_SENSOR_POWER_PIN_1 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_1 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_1 RK30_PIN3_PB5 +#define CONFIG_SENSOR_FALSH_PIN_1 INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_1 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_1 30000 + +#define CONFIG_SENSOR_11 RK29_CAM_SENSOR_OV2659 /* front camera sensor 1 */ +#define CONFIG_SENSOR_IIC_ADDR_11 0x00 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_11 3 +#define CONFIG_SENSOR_ORIENTATION_11 270 +#define CONFIG_SENSOR_POWER_PIN_11 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_11 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_11 INVALID_GPIO//RK30_PIN1_PB7 +#define CONFIG_SENSOR_FALSH_PIN_11 INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_11 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_11 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_11 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_11 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_11 30000 + +#define CONFIG_SENSOR_12 RK29_CAM_SENSOR_OV2659//RK29_CAM_SENSOR_OV2655 /* front camera sensor 2 */ +#define CONFIG_SENSOR_IIC_ADDR_12 0x00 +#define CONFIG_SENSOR_IIC_ADAPTER_ID_12 3 +#define CONFIG_SENSOR_ORIENTATION_12 270 +#define CONFIG_SENSOR_POWER_PIN_12 INVALID_GPIO +#define CONFIG_SENSOR_RESET_PIN_12 INVALID_GPIO +#define CONFIG_SENSOR_POWERDN_PIN_12 INVALID_GPIO//RK30_PIN1_PB7 +#define CONFIG_SENSOR_FALSH_PIN_12 INVALID_GPIO +#define CONFIG_SENSOR_POWERACTIVE_LEVEL_12 RK29_CAM_POWERACTIVE_L +#define CONFIG_SENSOR_RESETACTIVE_LEVEL_12 RK29_CAM_RESETACTIVE_L +#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12 RK29_CAM_POWERDNACTIVE_H +#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_12 RK29_CAM_FLASHACTIVE_L + +#define CONFIG_SENSOR_QCIF_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_240X160_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_QVGA_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_CIF_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_VGA_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_480P_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_SVGA_FPS_FIXED_12 15000 +#define CONFIG_SENSOR_720P_FPS_FIXED_12 30000 + + +#endif //#ifdef CONFIG_VIDEO_RK29 +/*---------------- Camera Sensor Configuration Macro End------------------------*/ +#include "../../../drivers/media/video/rk30_camera.c" +/*---------------- Camera Sensor Macro Define End ---------*/ + +#define PMEM_CAM_SIZE PMEM_CAM_NECESSARY +/***************************************************************************************** + * camera devices + * author: ddl@rock-chips.com + *****************************************************************************************/ +#ifdef CONFIG_VIDEO_RK29 +#define CONFIG_SENSOR_POWER_IOCTL_USR 0 //define this refer to your board layout +#define CONFIG_SENSOR_RESET_IOCTL_USR 0 +#define CONFIG_SENSOR_POWERDOWN_IOCTL_USR 0 +#define CONFIG_SENSOR_FLASH_IOCTL_USR 1 + +static void rk_cif_power(int on) +{ + struct regulator *ldo_18,*ldo_28; + ldo_28 = regulator_get(NULL, "ldo7"); // vcc28_cif + ldo_18 = regulator_get(NULL, "ldo1"); // vcc18_cif + if (ldo_28 == NULL || IS_ERR(ldo_28) || ldo_18 == NULL || IS_ERR(ldo_18)){ + printk("get cif ldo failed!\n"); + return; + } + if(on == 0){ + regulator_disable(ldo_28); + regulator_put(ldo_28); + regulator_disable(ldo_18); + regulator_put(ldo_18); + mdelay(500); + } + else{ + regulator_set_voltage(ldo_28, 2800000, 2800000); + regulator_enable(ldo_28); + // printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28)); + regulator_put(ldo_28); + + regulator_set_voltage(ldo_18, 1800000, 1800000); + // regulator_set_suspend_voltage(ldo, 1800000); + regulator_enable(ldo_18); + // printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_18)); + regulator_put(ldo_18); + } +} + +#if CONFIG_SENSOR_POWER_IOCTL_USR +static int sensor_power_usr_cb (struct rk29camera_gpio_res *res,int on) +{ + //#error "CONFIG_SENSOR_POWER_IOCTL_USR is 1, sensor_power_usr_cb function must be writed!!"; + rk_cif_power(on); + return 0; +} +#endif + +#if CONFIG_SENSOR_RESET_IOCTL_USR +static int sensor_reset_usr_cb (struct rk29camera_gpio_res *res,int on) +{ + #error "CONFIG_SENSOR_RESET_IOCTL_USR is 1, sensor_reset_usr_cb function must be writed!!"; +} +#endif + +#if CONFIG_SENSOR_POWERDOWN_IOCTL_USR +static int sensor_powerdown_usr_cb (struct rk29camera_gpio_res *res,int on) +{ + #error "CONFIG_SENSOR_POWERDOWN_IOCTL_USR is 1, sensor_powerdown_usr_cb function must be writed!!"; +} +#endif + +#if CONFIG_SENSOR_FLASH_IOCTL_USR + +#define CONFIG_SENSOR_FALSH_EN_PIN_0 RK30_PIN0_PD5 //high:enable +#define CONFIG_SENSOR_FALSH_EN_MUX_0 GPIO0D5_SPI1TXD_NAME +#define CONFIG_SENSOR_FALSH_MODE_PIN_0 RK30_PIN0_PD4 //high:FLASH, low:torch +#define CONFIG_SENSOR_FALSH_MODE_MUX_0 GPIO0D4_SPI1RXD_NAME + +static int sensor_init_flags = 0; +static int sensor_flash_usr_cb (struct rk29camera_gpio_res *res,int on) +{ + + if(sensor_init_flags == 0){ + rk30_mux_api_set(CONFIG_SENSOR_FALSH_EN_MUX_0, 0); + rk30_mux_api_set(CONFIG_SENSOR_FALSH_MODE_MUX_0, 0); + gpio_request(CONFIG_SENSOR_FALSH_EN_PIN_0, "camera_flash_en"); + gpio_request(CONFIG_SENSOR_FALSH_MODE_PIN_0, "camera_flash_mode"); + gpio_direction_output(CONFIG_SENSOR_FALSH_EN_PIN_0, 0); + gpio_direction_output(CONFIG_SENSOR_FALSH_MODE_PIN_0, 0); + } + switch (on) { + case Flash_Off: { + gpio_set_value(CONFIG_SENSOR_FALSH_EN_PIN_0, 0); + gpio_set_value(CONFIG_SENSOR_FALSH_MODE_PIN_0, 1); + break; + } + + case Flash_On: { + gpio_set_value(CONFIG_SENSOR_FALSH_EN_PIN_0, 1); + gpio_set_value(CONFIG_SENSOR_FALSH_MODE_PIN_0, 1); + break; + } + + case Flash_Torch: { + gpio_set_value(CONFIG_SENSOR_FALSH_EN_PIN_0, 1); + gpio_set_value(CONFIG_SENSOR_FALSH_MODE_PIN_0, 0); + break; + } + + default: { + printk("%s..Flash command(%d) is invalidate \n",__FUNCTION__, on); + gpio_set_value(CONFIG_SENSOR_FALSH_EN_PIN_0, 0); + break; + } + } + return 0; +} +#endif + +static struct rk29camera_platform_ioctl_cb sensor_ioctl_cb = { + #if CONFIG_SENSOR_POWER_IOCTL_USR + .sensor_power_cb = sensor_power_usr_cb, + #else + .sensor_power_cb = NULL, + #endif + + #if CONFIG_SENSOR_RESET_IOCTL_USR + .sensor_reset_cb = sensor_reset_usr_cb, + #else + .sensor_reset_cb = NULL, + #endif + + #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR + .sensor_powerdown_cb = sensor_powerdown_usr_cb, + #else + .sensor_powerdown_cb = NULL, + #endif + + #if CONFIG_SENSOR_FLASH_IOCTL_USR + .sensor_flash_cb = sensor_flash_usr_cb, + #else + .sensor_flash_cb = NULL, + #endif +}; + +#if CONFIG_SENSOR_IIC_ADDR_0 +static struct reginfo_t rk_init_data_sensor_reg_0[] = +{ + {0x0000, 0x00,0,0} + }; +static struct reginfo_t rk_init_data_sensor_winseqreg_0[] ={ + {0x0000, 0x00,0,0} + }; +#endif + +#if CONFIG_SENSOR_IIC_ADDR_1 +static struct reginfo_t rk_init_data_sensor_reg_1[] = +{ + {0x0000, 0x00,0,0} +}; +static struct reginfo_t rk_init_data_sensor_winseqreg_1[] = +{ + {0x0000, 0x00,0,0} +}; +#endif +#if CONFIG_SENSOR_IIC_ADDR_01 +static struct reginfo_t rk_init_data_sensor_reg_01[] = +{ + {0x0000, 0x00,0,0} +}; +static struct reginfo_t rk_init_data_sensor_winseqreg_01[] = +{ + {0x0000, 0x00,0,0} +}; +#endif +#if CONFIG_SENSOR_IIC_ADDR_02 +static struct reginfo_t rk_init_data_sensor_reg_02[] = +{ + {0x0000, 0x00,0,0} +}; +static struct reginfo_t rk_init_data_sensor_winseqreg_02[] = +{ + {0x0000, 0x00,0,0} +}; +#endif +#if CONFIG_SENSOR_IIC_ADDR_11 +static struct reginfo_t rk_init_data_sensor_reg_11[] = +{ + {0x0000, 0x00,0,0} +}; +static struct reginfo_t rk_init_data_sensor_winseqreg_11[] = +{ + {0x0000, 0x00,0,0} +}; +#endif +#if CONFIG_SENSOR_IIC_ADDR_12 +static struct reginfo_t rk_init_data_sensor_reg_12[] = +{ + {0x0000, 0x00,0,0} +}; +static struct reginfo_t rk_init_data_sensor_winseqreg_12[] = +{ + {0x0000, 0x00,0,0} +}; +#endif +static rk_sensor_user_init_data_s rk_init_data_sensor[RK_CAM_NUM] = +{ + #if CONFIG_SENSOR_IIC_ADDR_0 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_0, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_0, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_0) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_0) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + #if CONFIG_SENSOR_IIC_ADDR_1 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_1, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_1, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_1) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_1) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + #if CONFIG_SENSOR_IIC_ADDR_01 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_01, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_01, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_01) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_01) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + #if CONFIG_SENSOR_IIC_ADDR_02 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_02, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_02, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_02) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_02) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + #if CONFIG_SENSOR_IIC_ADDR_11 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_11, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_11, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_11) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_11) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + #if CONFIG_SENSOR_IIC_ADDR_12 + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = rk_init_data_sensor_reg_12, + .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_12, + .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_12) / sizeof(struct reginfo_t), + .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_12) / sizeof(struct reginfo_t), + }, + #else + { + .rk_sensor_init_width = INVALID_VALUE, + .rk_sensor_init_height = INVALID_VALUE, + .rk_sensor_init_bus_param = INVALID_VALUE, + .rk_sensor_init_pixelcode = INVALID_VALUE, + .rk_sensor_init_data = NULL, + .rk_sensor_init_winseq = NULL, + .rk_sensor_winseq_size = 0, + .rk_sensor_init_data_size = 0, + }, + #endif + + }; +#include "../../../drivers/media/video/rk30_camera.c" + +#endif /* CONFIG_VIDEO_RK29 */ diff --git a/arch/arm/mach-rk30/board-rk3168-ds1006h-key.c b/arch/arm/mach-rk30/board-rk3168-ds1006h-key.c new file mode 100644 index 000000000000..ca29970c4470 --- /dev/null +++ b/arch/arm/mach-rk30/board-rk3168-ds1006h-key.c @@ -0,0 +1,31 @@ +#include +#include + +#define EV_ENCALL KEY_F4 +#define EV_MENU KEY_F1 + +#define PRESS_LEV_LOW 1 +#define PRESS_LEV_HIGH 0 + +static struct rk29_keys_button key_button[] = { + { + .desc = "play", + .code = KEY_POWER, + .gpio = RK30_PIN0_PA4, + .active_low = PRESS_LEV_LOW, + .wakeup = 1, + }, + { + .desc = "esc", + .code = KEY_BACK, + .adc_value = 1, + .gpio = INVALID_GPIO, + .active_low = PRESS_LEV_LOW, + }, +}; +struct rk29_keys_platform_data rk29_keys_pdata = { + .buttons = key_button, + .nbuttons = ARRAY_SIZE(key_button), + .chn = 1, //chn: 0-7, if do not use ADC,set 'chn' -1 +}; + diff --git a/arch/arm/mach-rk30/board-rk3168-ds1006h.c b/arch/arm/mach-rk30/board-rk3168-ds1006h.c new file mode 100644 index 000000000000..005401ba433d --- /dev/null +++ b/arch/arm/mach-rk30/board-rk3168-ds1006h.c @@ -0,0 +1,1669 @@ +/* + * + * Copyright (C) 2012 ROCKCHIP, Inc. + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(CONFIG_CT36X_TS) +#include +#endif +#if defined(CONFIG_MFD_RK610) +#include +#endif + +#if defined(CONFIG_RK_HDMI) + #include "../../../drivers/video/rockchip/hdmi/rk_hdmi.h" +#endif + +#if defined(CONFIG_SPIM_RK29) +#include "../../../drivers/spi/rk29_spim.h" +#endif +#if defined(CONFIG_GPS_RK) +#include "../../../drivers/misc/gps/rk_gps/rk_gps.h" +#endif + +#if defined(CONFIG_MT6620) +#include +#endif + +#ifdef CONFIG_THREE_FB_BUFFER +#define RK30_FB0_MEM_SIZE 12*SZ_1M +#else +#define RK30_FB0_MEM_SIZE 8*SZ_1M +#endif + +#include "board-rk3168-ds1006h-camera.c" +#include "board-rk3168-ds1006h-key.c" + +#if defined(CONFIG_CT36X_TS) + +#define TOUCH_MODEL 365 +#define TOUCH_MAX_X 1280 +#define TOUCH_MAX_y 800 +#define TOUCH_RESET_PIN RK30_PIN0_PB6 +#define TOUCH_INT_PIN RK30_PIN1_PB7 + +static struct ct36x_platform_data ct36x_info = { + .model = TOUCH_MODEL, + .x_max = TOUCH_MAX_X, + .y_max = TOUCH_MAX_y, + + .rst_io = { + .gpio = TOUCH_RESET_PIN, + .active_low = 1, + }, + .irq_io = { + .gpio = TOUCH_INT_PIN, + .active_low = 1, + }, + .orientation = {1, 0, 1, 0}, +}; +#endif +static struct spi_board_info board_spi_devices[] = { +}; + +/*********************************************************** +* rk30 backlight +************************************************************/ +#ifdef CONFIG_BACKLIGHT_RK29_BL +#define PWM_ID 3 +#define PWM_MODE PWM3 +#define PWM_EFFECT_VALUE 1 + +#define LCD_DISP_ON_PIN + +#ifdef LCD_DISP_ON_PIN +#define BL_EN_PIN RK30_PIN0_PA2 +#define BL_EN_VALUE GPIO_HIGH +#endif +static int rk29_backlight_io_init(void) +{ + int ret = 0; + + iomux_set(PWM_MODE); +#ifdef LCD_DISP_ON_PIN + ret = gpio_request(BL_EN_PIN, NULL); + if (ret != 0) { + gpio_free(BL_EN_PIN); + } + + gpio_direction_output(BL_EN_PIN, 0); + gpio_set_value(BL_EN_PIN, BL_EN_VALUE); +#endif + return ret; +} + +static int rk29_backlight_io_deinit(void) +{ + int ret = 0, pwm_gpio; + +#ifdef LCD_DISP_ON_PIN + gpio_free(BL_EN_PIN); +#endif + + pwm_gpio = mode_to_gpio(PWM_MODE); + gpio_request(pwm_gpio, NULL); + gpio_direction_output(pwm_gpio, GPIO_LOW); + return ret; +} + +static int rk29_backlight_pwm_suspend(void) +{ + int ret = 0, pwm_gpio; + + pwm_gpio = mode_to_gpio(PWM_MODE); + if (gpio_request(pwm_gpio, NULL)) { + printk("func %s, line %d: request gpio fail\n", __FUNCTION__, __LINE__); + return -1; + } + gpio_direction_output(pwm_gpio, GPIO_LOW); +#ifdef LCD_DISP_ON_PIN + gpio_direction_output(BL_EN_PIN, 0); + gpio_set_value(BL_EN_PIN, !BL_EN_VALUE); +#endif + return ret; +} + +static int rk29_backlight_pwm_resume(void) +{ + int pwm_gpio = mode_to_gpio(PWM_MODE); + + gpio_free(pwm_gpio); + iomux_set(PWM_MODE); +#ifdef LCD_DISP_ON_PIN + msleep(30); + gpio_direction_output(BL_EN_PIN, 1); + gpio_set_value(BL_EN_PIN, BL_EN_VALUE); +#endif + return 0; +} + +static struct rk29_bl_info rk29_bl_info = { + .min_brightness = 30, + .pwm_id = PWM_ID, + .bl_ref = PWM_EFFECT_VALUE, + .io_init = rk29_backlight_io_init, + .io_deinit = rk29_backlight_io_deinit, + .pwm_suspend = rk29_backlight_pwm_suspend, + .pwm_resume = rk29_backlight_pwm_resume, +}; + +static struct platform_device rk29_device_backlight = { + .name = "rk29_backlight", + .id = -1, + .dev = { + .platform_data = &rk29_bl_info, + } +}; + +#endif + +/*MMA8452 gsensor*/ +#if defined (CONFIG_GS_MMA8452) +#define MMA8452_INT_PIN RK30_PIN0_PB7 + +static int mma8452_init_platform_hw(void) +{ + return 0; +} + +static struct sensor_platform_data mma8452_info = { + .type = SENSOR_TYPE_ACCEL, + .irq_enable = 1, + .poll_delay_ms = 30, + .init_platform_hw = mma8452_init_platform_hw, + .orientation = {-1, 0, 0, 0, 0, 1, 0, -1, 0}, +}; +#endif +#if defined (CONFIG_GS_LIS3DH) +#define LIS3DH_INT_PIN RK30_PIN0_PB7 + +static int lis3dh_init_platform_hw(void) +{ + + return 0; +} + +static struct sensor_platform_data lis3dh_info = { + .type = SENSOR_TYPE_ACCEL, + .irq_enable = 1, + .poll_delay_ms = 30, + .init_platform_hw = lis3dh_init_platform_hw, + .orientation = {-1, 0, 0, 0, 0, 1, 0, -1, 0}, +}; +#endif +#if defined (CONFIG_COMPASS_AK8975) +static struct sensor_platform_data akm8975_info = +{ + .type = SENSOR_TYPE_COMPASS, + .irq_enable = 1, + .poll_delay_ms = 30, + .m_layout = + { + { + {1, 0, 0}, + {0, 1, 0}, + {0, 0, 1}, + }, + + { + {1, 0, 0}, + {0, 1, 0}, + {0, 0, 1}, + }, + + { + {1, 0, 0}, + {0, 1, 0}, + {0, 0, 1}, + }, + + { + {1, 0, 0}, + {0, 1, 0}, + {0, 0, 1}, + }, + } +}; + +#endif + +#if defined(CONFIG_GYRO_L3G4200D) + +#include +#define L3G4200D_INT_PIN RK30_PIN0_PB4 + +static int l3g4200d_init_platform_hw(void) +{ + return 0; +} + +static struct sensor_platform_data l3g4200d_info = { + .type = SENSOR_TYPE_GYROSCOPE, + .irq_enable = 1, + .poll_delay_ms = 30, + .orientation = {0, 1, 0, -1, 0, 0, 0, 0, 1}, + .init_platform_hw = l3g4200d_init_platform_hw, + .x_min = 40,//x_min,y_min,z_min = (0-100) according to hardware + .y_min = 40, + .z_min = 20, +}; + +#endif + +#ifdef CONFIG_LS_CM3217 +static struct sensor_platform_data cm3217_info = { + .type = SENSOR_TYPE_LIGHT, + .irq_enable = 0, + .poll_delay_ms = 500, +}; + +#endif + +#ifdef CONFIG_FB_ROCKCHIP + +#define LCD_CS_PIN INVALID_GPIO +#define LCD_CS_VALUE GPIO_HIGH + +#define LCD_EN_PIN RK30_PIN0_PB0 +#define LCD_EN_VALUE GPIO_LOW + +static int rk_fb_io_init(struct rk29_fb_setting_info *fb_setting) +{ + int ret = 0; + + if(LCD_CS_PIN !=INVALID_GPIO) + { + ret = gpio_request(LCD_CS_PIN, NULL); + if (ret != 0) + { + gpio_free(LCD_CS_PIN); + printk(KERN_ERR "request lcd cs pin fail!\n"); + return -1; + } + else + { + gpio_direction_output(LCD_CS_PIN, LCD_CS_VALUE); + } + } + + if(LCD_EN_PIN !=INVALID_GPIO) + { + ret = gpio_request(LCD_EN_PIN, NULL); + if (ret != 0) + { + gpio_free(LCD_EN_PIN); + printk(KERN_ERR "request lcd en pin fail!\n"); + return -1; + } + else + { + gpio_direction_output(LCD_EN_PIN, LCD_EN_VALUE); + } + } + return 0; +} +static int rk_fb_io_disable(void) +{ + if(LCD_CS_PIN !=INVALID_GPIO) + { + gpio_set_value(LCD_CS_PIN, !LCD_CS_VALUE); + } + if(LCD_EN_PIN !=INVALID_GPIO) + { + gpio_set_value(LCD_EN_PIN, !LCD_EN_VALUE); + } + return 0; +} +static int rk_fb_io_enable(void) +{ + if(LCD_CS_PIN !=INVALID_GPIO) + { + gpio_set_value(LCD_CS_PIN, LCD_CS_VALUE); + } + if(LCD_EN_PIN !=INVALID_GPIO) + { + gpio_set_value(LCD_EN_PIN, LCD_EN_VALUE); + } + return 0; +} + +#if defined(CONFIG_LCDC0_RK3066B) +struct rk29fb_info lcdc0_screen_info = { + .prop = PRMRY, //primary display device + .io_init = rk_fb_io_init, + .io_disable = rk_fb_io_disable, + .io_enable = rk_fb_io_enable, + .set_screen_info = set_lcd_info, +}; +#endif + +#if defined(CONFIG_LCDC1_RK3066B) +struct rk29fb_info lcdc1_screen_info = { + #if defined(CONFIG_RK_HDMI) + .prop = EXTEND, //extend display device + .lcd_info = NULL, + .set_screen_info = hdmi_init_lcdc, + #endif + #if defined(CONFIG_MFD_RK610) + .prop = PRMRY, //primary display device + .io_init = rk_fb_io_init, + .io_disable = rk_fb_io_disable, + .io_enable = rk_fb_io_enable, + .set_screen_info = set_lcd_info, + #endif +}; +#endif + +static struct resource resource_fb[] = { + [0] = { + .name = "fb0 buf", + .start = 0, + .end = 0,//RK30_FB0_MEM_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .name = "ipp buf", //for rotate + .start = 0, + .end = 0,//RK30_FB0_MEM_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [2] = { + .name = "fb2 buf", + .start = 0, + .end = 0,//RK30_FB0_MEM_SIZE - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device device_fb = { + .name = "rk-fb", + .id = -1, + .num_resources = ARRAY_SIZE(resource_fb), + .resource = resource_fb, +}; +#endif + +#if defined(CONFIG_LCDC0_RK3066B) +static struct resource resource_lcdc0[] = { + [0] = { + .name = "lcdc0 reg", + .start = RK30_LCDC0_PHYS, + .end = RK30_LCDC0_PHYS + RK30_LCDC0_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + + [1] = { + .name = "lcdc0 irq", + .start = IRQ_LCDC0, + .end = IRQ_LCDC0, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device device_lcdc0 = { + .name = "rk30-lcdc", + .id = 0, + .num_resources = ARRAY_SIZE(resource_lcdc0), + .resource = resource_lcdc0, + .dev = { + .platform_data = &lcdc0_screen_info, + }, +}; +#endif +#if defined(CONFIG_LCDC1_RK3066B) +static struct resource resource_lcdc1[] = { + [0] = { + .name = "lcdc1 reg", + .start = RK30_LCDC1_PHYS, + .end = RK30_LCDC1_PHYS + RK30_LCDC1_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .name = "lcdc1 irq", + .start = IRQ_LCDC1, + .end = IRQ_LCDC1, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device device_lcdc1 = { + .name = "rk30-lcdc", + .id = 1, + .num_resources = ARRAY_SIZE(resource_lcdc1), + .resource = resource_lcdc1, + .dev = { + .platform_data = &lcdc1_screen_info, + }, +}; +#endif + +#if defined(CONFIG_MFD_RK610) +#define RK610_RST_PIN RK30_PIN3_PB2 +static int rk610_power_on_init(void) +{ + int ret; + if(RK610_RST_PIN != INVALID_GPIO) + { + ret = gpio_request(RK610_RST_PIN, "rk610 reset"); + if (ret) + { + printk(KERN_ERR "rk610_control_probe request gpio fail\n"); + } + else + { + gpio_direction_output(RK610_RST_PIN, GPIO_HIGH); + msleep(100); + gpio_direction_output(RK610_RST_PIN, GPIO_LOW); + msleep(100); + gpio_set_value(RK610_RST_PIN, GPIO_HIGH); + } + } + + return 0; + +} + + +static struct rk610_ctl_platform_data rk610_ctl_pdata = { + .rk610_power_on_init = rk610_power_on_init, +}; +#endif + +#ifdef CONFIG_ION +#define ION_RESERVE_SIZE (80 * SZ_1M) +static struct ion_platform_data rk30_ion_pdata = { + .nr = 1, + .heaps = { + { + .type = ION_HEAP_TYPE_CARVEOUT, + .id = ION_NOR_HEAP_ID, + .name = "norheap", + .size = ION_RESERVE_SIZE, + } + }, +}; + +static struct platform_device device_ion = { + .name = "ion-rockchip", + .id = 0, + .dev = { + .platform_data = &rk30_ion_pdata, + }, +}; +#endif + +/************************************************************************************************** + * SDMMC devices, include the module of SD,MMC,and sdio.noted by xbw at 2012-03-05 +**************************************************************************************************/ +#ifdef CONFIG_SDMMC_RK29 +#include "board-rk30-sdk-sdmmc.c" +#endif //endif ---#ifdef CONFIG_SDMMC_RK29 + +#ifdef CONFIG_SDMMC0_RK29 +static int rk29_sdmmc0_cfg_gpio(void) +{ +#ifdef CONFIG_SDMMC_RK29_OLD + iomux_set(MMC0_CMD); + iomux_set(MMC0_CLKOUT); + iomux_set(MMC0_D0); + iomux_set(MMC0_D1); + iomux_set(MMC0_D2); + iomux_set(MMC0_D3); + iomux_set(MMC0_DETN); + + gpio_request(RK30_PIN3_PA7, "sdmmc-power"); + gpio_direction_output(RK30_PIN3_PA7, GPIO_LOW); + +#else + rk29_sdmmc_set_iomux(0, 0xFFFF); + + #if defined(CONFIG_SDMMC0_RK29_SDCARD_DET_FROM_GPIO) + rk30_mux_api_set(RK29SDK_SD_CARD_DETECT_PIN_NAME, RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO); + #else + rk30_mux_api_set(RK29SDK_SD_CARD_DETECT_PIN_NAME, RK29SDK_SD_CARD_DETECT_IOMUX_FMUX); + #endif + +#if defined(CONFIG_SDMMC0_RK29_WRITE_PROTECT) + gpio_request(SDMMC0_WRITE_PROTECT_PIN, "sdmmc-wp"); + gpio_direction_input(SDMMC0_WRITE_PROTECT_PIN); +#endif + +#endif + + return 0; +} + +#define CONFIG_SDMMC0_USE_DMA +struct rk29_sdmmc_platform_data default_sdmmc0_data = { + .host_ocr_avail = + (MMC_VDD_25_26 | MMC_VDD_26_27 | MMC_VDD_27_28 | MMC_VDD_28_29 | + MMC_VDD_29_30 | MMC_VDD_30_31 | MMC_VDD_31_32 | MMC_VDD_32_33 | + MMC_VDD_33_34 | MMC_VDD_34_35 | MMC_VDD_35_36), + .host_caps = + (MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED), + .io_init = rk29_sdmmc0_cfg_gpio, + +#if !defined(CONFIG_SDMMC_RK29_OLD) + .set_iomux = rk29_sdmmc_set_iomux, +#endif + + .dma_name = "sd_mmc", +#ifdef CONFIG_SDMMC0_USE_DMA + .use_dma = 1, +#else + .use_dma = 0, +#endif + +#if defined(CONFIG_WIFI_COMBO_MODULE_CONTROL_FUNC) && defined(CONFIG_USE_SDMMC0_FOR_WIFI_DEVELOP_BOARD) + .status = rk29sdk_wifi_mmc0_status, + .register_status_notify = rk29sdk_wifi_mmc0_status_register, +#endif + +#if defined(RK29SDK_SD_CARD_PWR_EN) || (INVALID_GPIO != RK29SDK_SD_CARD_PWR_EN) + .power_en = RK29SDK_SD_CARD_PWR_EN, + .power_en_level = RK29SDK_SD_CARD_PWR_EN_LEVEL, +#else + .power_en = INVALID_GPIO, + .power_en_level = GPIO_LOW, +#endif + .enable_sd_wakeup = 0, + +#if defined(CONFIG_SDMMC0_RK29_WRITE_PROTECT) + .write_prt = SDMMC0_WRITE_PROTECT_PIN, + .write_prt_enalbe_level = SDMMC0_WRITE_PROTECT_ENABLE_VALUE; +#else + .write_prt = INVALID_GPIO, +#endif + + .det_pin_info = { + #if defined(RK29SDK_SD_CARD_DETECT_N) || (INVALID_GPIO != RK29SDK_SD_CARD_DETECT_N) + .io = RK29SDK_SD_CARD_DETECT_N, //INVALID_GPIO, + .enable = RK29SDK_SD_CARD_INSERT_LEVEL, + #ifdef RK29SDK_SD_CARD_DETECT_PIN_NAME + .iomux = { + .name = RK29SDK_SD_CARD_DETECT_PIN_NAME, + #ifdef RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO + .fgpio = RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO, + #endif + #ifdef RK29SDK_SD_CARD_DETECT_IOMUX_FMUX + .fmux = RK29SDK_SD_CARD_DETECT_IOMUX_FMUX, + #endif + }, + #endif + #else + .io = INVALID_GPIO, + .enable = GPIO_LOW, + #endif + }, + +}; +#endif // CONFIG_SDMMC0_RK29 + +#ifdef CONFIG_SDMMC1_RK29 +#define CONFIG_SDMMC1_USE_DMA +static int rk29_sdmmc1_cfg_gpio(void) +{ +#if defined(CONFIG_SDMMC_RK29_OLD) + iomux_set(MMC0_CMD); + iomux_set(MMC0_CLKOUT); + iomux_set(MMC0_D0); + iomux_set(MMC0_D1); + iomux_set(MMC0_D2); + iomux_set(MMC0_D3); +#else + +#if defined(CONFIG_SDMMC1_RK29_WRITE_PROTECT) + gpio_request(SDMMC1_WRITE_PROTECT_PIN, "sdio-wp"); + gpio_direction_input(SDMMC1_WRITE_PROTECT_PIN); +#endif + +#endif + + return 0; +} + +struct rk29_sdmmc_platform_data default_sdmmc1_data = { + .host_ocr_avail = + (MMC_VDD_25_26 | MMC_VDD_26_27 | MMC_VDD_27_28 | MMC_VDD_28_29 | + MMC_VDD_29_30 | MMC_VDD_30_31 | MMC_VDD_31_32 | MMC_VDD_32_33 | + MMC_VDD_33_34), + +#if !defined(CONFIG_USE_SDMMC1_FOR_WIFI_DEVELOP_BOARD) + .host_caps = (MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ | + MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED), +#else + .host_caps = + (MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED), +#endif + + .io_init = rk29_sdmmc1_cfg_gpio, + +#if !defined(CONFIG_SDMMC_RK29_OLD) + .set_iomux = rk29_sdmmc_set_iomux, +#endif + + .dma_name = "sdio", +#ifdef CONFIG_SDMMC1_USE_DMA + .use_dma = 1, +#else + .use_dma = 0, +#endif + +#if defined(CONFIG_WIFI_CONTROL_FUNC) || defined(CONFIG_WIFI_COMBO_MODULE_CONTROL_FUNC) + .status = rk29sdk_wifi_status, + .register_status_notify = rk29sdk_wifi_status_register, +#endif + +#if defined(CONFIG_SDMMC1_RK29_WRITE_PROTECT) + .write_prt = SDMMC1_WRITE_PROTECT_PIN, + .write_prt_enalbe_level = SDMMC1_WRITE_PROTECT_ENABLE_VALUE; +#else + .write_prt = INVALID_GPIO, +#endif + + #if defined(CONFIG_RK29_SDIO_IRQ_FROM_GPIO) + .sdio_INT_gpio = RK29SDK_WIFI_SDIO_CARD_INT, + #endif + + .det_pin_info = { +#if defined(CONFIG_USE_SDMMC1_FOR_WIFI_DEVELOP_BOARD) + #if defined(RK29SDK_SD_CARD_DETECT_N) || (INVALID_GPIO != RK29SDK_SD_CARD_DETECT_N) + .io = RK29SDK_SD_CARD_DETECT_N, + #else + .io = INVALID_GPIO, + #endif + + .enable = RK29SDK_SD_CARD_INSERT_LEVEL, + #ifdef RK29SDK_SD_CARD_DETECT_PIN_NAME + .iomux = { + .name = RK29SDK_SD_CARD_DETECT_PIN_NAME, + #ifdef RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO + .fgpio = RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO, + #endif + #ifdef RK29SDK_SD_CARD_DETECT_IOMUX_FMUX + .fmux = RK29SDK_SD_CARD_DETECT_IOMUX_FMUX, + #endif + }, + #endif + #else + .io = INVALID_GPIO, + .enable = GPIO_LOW, +#endif + }, + + .enable_sd_wakeup = 0, +}; +#endif //endif--#ifdef CONFIG_SDMMC1_RK29 + +/************************************************************************************************** + * the end of setting for SDMMC devices +**************************************************************************************************/ + +#ifdef CONFIG_BATTERY_RK30_ADC +static struct rk30_adc_battery_platform_data rk30_adc_battery_platdata = { + .dc_det_pin = RK30_PIN0_PB2, + .batt_low_pin = RK30_PIN0_PB1, + .charge_set_pin = INVALID_GPIO, + .charge_ok_pin = RK30_PIN0_PA6, + .dc_det_level = GPIO_LOW, + .charge_ok_level = GPIO_HIGH, +}; + +static struct platform_device rk30_device_adc_battery = { + .name = "rk30-battery", + .id = -1, + .dev = { + .platform_data = &rk30_adc_battery_platdata, + }, +}; +#endif +#ifdef CONFIG_RK30_PWM_REGULATOR +static int pwm_voltage_map[] = { + 950000, 975000,1000000, 1025000, 1050000, 1075000, 1100000, 1125000, 1150000, 1175000, 1200000, 1225000, 1250000, 1275000, 1300000, 1325000, 1350000, 1375000, 1400000 +}; + +static struct regulator_consumer_supply pwm_dcdc1_consumers[] = { + { + .supply = "vdd_core", + } +}; + +struct regulator_init_data pwm_regulator_init_dcdc[1] = +{ + { + .constraints = { + .name = "PWM_DCDC1", + .min_uV = 600000, + .max_uV = 1800000, //0.6-1.8V + .apply_uV = true, + .valid_ops_mask = REGULATOR_CHANGE_STATUS | REGULATOR_CHANGE_VOLTAGE, + }, + .num_consumer_supplies = ARRAY_SIZE(pwm_dcdc1_consumers), + .consumer_supplies = pwm_dcdc1_consumers, + }, +}; + +static struct pwm_platform_data pwm_regulator_info[1] = { + { + .pwm_id = 1, + .pwm_gpio = RK30_PIN3_PD4, + .pwm_iomux_name = GPIO3D4_PWM1_JTAGTRSTN_NAME, + .pwm_iomux_pwm = GPIO3D_PWM1, + .pwm_iomux_gpio = GPIO3D_GPIO3D4, + .pwm_voltage = 1100000, + .suspend_voltage = 1050000, + .min_uV = 950000, + .max_uV = 1400000, + .coefficient = 455, //45.5% + .pwm_voltage_map = pwm_voltage_map, + .init_data = &pwm_regulator_init_dcdc[0], + }, +}; + +struct platform_device pwm_regulator_device[1] = { + { + .name = "pwm-voltage-regulator", + .id = 0, + .dev = { + .platform_data = &pwm_regulator_info[0], + } + }, +}; +#endif + +#ifdef CONFIG_RFKILL_RK +// bluetooth rfkill device, its driver in net/rfkill/rfkill-rk.c +static struct rfkill_rk_platform_data rfkill_rk_platdata = { + .type = RFKILL_TYPE_BLUETOOTH, + + .poweron_gpio = { // BT_REG_ON + .io = INVALID_GPIO, //RK30_PIN3_PC7, + .enable = GPIO_HIGH, + .iomux = { + .name = GPIO3C7_SDMMC1WRITEPRT_RMIICRS_NAME, + .fgpio = GPIO3C_GPIO3C7, + }, + }, + + .reset_gpio = { // BT_RST + .io = RK30_PIN3_PD1, // set io to INVALID_GPIO for disable it + .enable = GPIO_LOW, + .iomux = { + .name = GPIO3D1_SDMMC1BACKENDPWR_MIIMDCLK_NAME, + .fgpio = GPIO3D_GPIO3D1, + }, + }, + + .wake_gpio = { // BT_WAKE, use to control bt's sleep and wakeup + .io = RK30_PIN3_PC6, // set io to INVALID_GPIO for disable it + .enable = GPIO_HIGH, + .iomux = { + .name = GPIO3C6_SDMMC1DETECTN_RMIIRXERR_NAME, + .fgpio = GPIO3C_GPIO3C6, + }, + }, + + .wake_host_irq = { // BT_HOST_WAKE, for bt wakeup host when it is in deep sleep + .gpio = { + .io = RK30_PIN0_PA5, // set io to INVALID_GPIO for disable it + .enable = GPIO_LOW, // set GPIO_LOW for falling, set 0 for rising + .iomux = { + .name = NULL, + }, + }, + }, + + .rts_gpio = { // UART_RTS, enable or disable BT's data coming + .io = RK30_PIN1_PA3, // set io to INVALID_GPIO for disable it + .enable = GPIO_LOW, + .iomux = { + .name = GPIO1A3_UART0RTSN_NAME, + .fgpio = GPIO1A_GPIO1A3, + .fmux = GPIO1A_UART0RTSN, + }, + }, +}; + +static struct platform_device device_rfkill_rk = { + .name = "rfkill_rk", + .id = -1, + .dev = { + .platform_data = &rfkill_rk_platdata, + }, +}; +#endif + +#if defined(CONFIG_GPS_RK) +int rk_gps_io_init(void) +{ + printk("%s \n", __FUNCTION__); + + rk30_mux_api_set(GPIO1B5_UART3RTSN_NAME, GPIO1B_GPIO1B5);//VCC_EN + gpio_request(RK30_PIN1_PB5, NULL); + gpio_direction_output(RK30_PIN1_PB5, GPIO_LOW); + + rk30_mux_api_set(GPIO1B4_UART3CTSN_GPSRFCLK_NAME, GPIO1B_GPSRFCLK);//GPS_CLK + rk30_mux_api_set(GPIO1B2_UART3SIN_GPSMAG_NAME, GPIO1B_GPSMAG);//GPS_MAG + rk30_mux_api_set(GPIO1B3_UART3SOUT_GPSSIG_NAME, GPIO1B_GPSSIG);//GPS_SIGN + + rk30_mux_api_set(GPIO1A6_UART1CTSN_SPI0CLK_NAME, GPIO1A_GPIO1A6);//SPI_CLK + gpio_request(RK30_PIN1_PA6, NULL); + gpio_direction_output(RK30_PIN1_PA6, GPIO_LOW); + + rk30_mux_api_set(GPIO1A5_UART1SOUT_SPI0TXD_NAME, GPIO1A_GPIO1A5);//SPI_MOSI + gpio_request(RK30_PIN1_PA5, NULL); + gpio_direction_output(RK30_PIN1_PA5, GPIO_LOW); + + rk30_mux_api_set(GPIO1A7_UART1RTSN_SPI0CSN0_NAME, GPIO1A_GPIO1A7);//SPI_CS + gpio_request(RK30_PIN1_PA7, NULL); + gpio_direction_output(RK30_PIN1_PA7, GPIO_LOW); + return 0; +} +int rk_gps_power_up(void) +{ + printk("%s \n", __FUNCTION__); + + return 0; +} + +int rk_gps_power_down(void) +{ + printk("%s \n", __FUNCTION__); + + return 0; +} + +int rk_gps_reset_set(int level) +{ + return 0; +} +int rk_enable_hclk_gps(void) +{ + printk("%s \n", __FUNCTION__); + clk_enable(clk_get(NULL, "hclk_gps")); + return 0; +} +int rk_disable_hclk_gps(void) +{ + printk("%s \n", __FUNCTION__); + clk_disable(clk_get(NULL, "hclk_gps")); + return 0; +} +struct rk_gps_data rk_gps_info = { + .io_init = rk_gps_io_init, + .power_up = rk_gps_power_up, + .power_down = rk_gps_power_down, + .reset = rk_gps_reset_set, + .enable_hclk_gps = rk_enable_hclk_gps, + .disable_hclk_gps = rk_disable_hclk_gps, + .GpsSign = RK30_PIN1_PB3, + .GpsMag = RK30_PIN1_PB2, //GPIO index + .GpsClk = RK30_PIN1_PB4, //GPIO index + .GpsVCCEn = RK30_PIN1_PB5, //GPIO index + .GpsSpi_CSO = RK30_PIN1_PA4, //GPIO index + .GpsSpiClk = RK30_PIN1_PA5, //GPIO index + .GpsSpiMOSI = RK30_PIN1_PA7, //GPIO index + .GpsIrq = IRQ_GPS, + .GpsSpiEn = 0, + .GpsAdcCh = 2, + .u32GpsPhyAddr = RK30_GPS_PHYS, + .u32GpsPhySize = RK30_GPS_SIZE, +}; + +struct platform_device rk_device_gps = { + .name = "gps_hv5820b", + .id = -1, + .dev = { + .platform_data = &rk_gps_info, + } + }; +#endif + + +static struct platform_device *devices[] __initdata = { +#ifdef CONFIG_FB_ROCKCHIP + &device_fb, +#endif +#if defined(CONFIG_LCDC0_RK3066B) + &device_lcdc0, +#endif +#if defined(CONFIG_LCDC1_RK3066B) + &device_lcdc1, +#endif + +#ifdef CONFIG_BACKLIGHT_RK29_BL + &rk29_device_backlight, +#endif + +#ifdef CONFIG_ION + &device_ion, +#endif +#ifdef CONFIG_WIFI_CONTROL_FUNC + &rk29sdk_wifi_device, +#endif + +#if defined(CONFIG_MT6620) + &mt3326_device_gps, +#endif + +#ifdef CONFIG_BATTERY_RK30_ADC + &rk30_device_adc_battery, +#endif +#ifdef CONFIG_RFKILL_RK + &device_rfkill_rk, +#endif +#ifdef CONFIG_GPS_RK + &rk_device_gps, +#endif +}; + +// i2c +#ifdef CONFIG_I2C0_RK30 +static struct i2c_board_info __initdata i2c0_info[] = { +#if defined (CONFIG_GS_MMA8452) + { + .type = "gs_mma8452", + .addr = 0x1d, + .flags = 0, + .irq = MMA8452_INT_PIN, + .platform_data = &mma8452_info, + }, +#endif +#if defined (CONFIG_GS_LIS3DH) + { + .type = "gs_lis3dh", + .addr = 0x19, //0x19(SA0-->VCC), 0x18(SA0-->GND) + .flags = 0, + .irq = LIS3DH_INT_PIN, + .platform_data = &lis3dh_info, + }, +#endif +#if defined (CONFIG_COMPASS_AK8975) + { + .type = "ak8975", + .addr = 0x0d, + .flags = 0, + .irq = RK30_PIN3_PD7, + .platform_data = &akm8975_info, + .irq = RK30_PIN3_PD7, + .platform_data = &akm8975_info, + }, +#endif +#if defined (CONFIG_GYRO_L3G4200D) + { + .type = "l3g4200d_gryo", + .addr = 0x69, + .flags = 0, + .irq = L3G4200D_INT_PIN, + .platform_data = &l3g4200d_info, + }, +#endif +#if defined (CONFIG_SND_SOC_RK1000) + { + .type = "rk1000_i2c_codec", + .addr = 0x60, + .flags = 0, + }, + { + .type = "rk1000_control", + .addr = 0x40, + .flags = 0, + }, +#endif +#if defined (CONFIG_SND_SOC_RT5631) + { + .type = "rt5631", + .addr = 0x1a, + .flags = 0, + }, +#endif +}; +#endif + +int __sramdata g_pmic_type = 0; +#ifdef CONFIG_I2C1_RK30 +#ifdef CONFIG_REGULATOR_ACT8846 +#define PMU_POWER_SLEEP RK30_PIN0_PA1 +#define ACT8846_HOST_IRQ RK30_PIN0_PB3 + +static struct pmu_info act8846_dcdc_info[] = { + { + .name = "act_dcdc1", //ddr + .min_uv = 1200000, + .max_uv = 1200000, + .suspend_vol = 1200000, + }, + { + .name = "vdd_core", //logic + .min_uv = 1000000, + .max_uv = 1000000, + .suspend_vol = 900000, + }, + { + .name = "vdd_cpu", //arm + .min_uv = 1000000, + .max_uv = 1000000, + .suspend_vol = 900000, + }, + { + .name = "act_dcdc4", //vccio + .min_uv = 3000000, + .max_uv = 3000000, + .suspend_vol = 2800000, + }, + +}; +static struct pmu_info act8846_ldo_info[] = { + { + .name = "act_ldo1", //vdd10 + .min_uv = 1000000, + .max_uv = 1000000, + }, + { + .name = "act_ldo2", //vdd12 + .min_uv = 1200000, + .max_uv = 1200000, + }, + { + .name = "act_ldo3", //vcc18_cif + .min_uv = 1800000, + .max_uv = 1800000, + }, + { + .name = "act_ldo4", //vcca33 + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo5", //vcctp + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo6", //vcc_jetta + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "act_ldo7", //vcc18 + .min_uv = 1800000, + .max_uv = 1800000, + }, + { + .name = "act_ldo8", //vcc28_cif + .min_uv = 2800000, + .max_uv = 2800000, + }, + }; + +#include "board-pmu-act8846.c" +#endif + +#ifdef CONFIG_MFD_WM831X_I2C +#define PMU_POWER_SLEEP RK30_PIN0_PA1 + +static struct pmu_info wm8326_dcdc_info[] = { + { + .name = "vdd_core", //logic + .min_uv = 1000000, + .max_uv = 1000000, + .suspend_vol = 950000, + }, + { + .name = "vdd_cpu", //arm + .min_uv = 1000000, + .max_uv = 1000000, + .suspend_vol = 950000, + }, + { + .name = "dcdc3", //ddr + .min_uv = 1150000, + .max_uv = 1150000, + .suspend_vol = 1150000, + }, + #ifdef CONFIG_MACH_RK3066_SDK + { + .name = "dcdc4", //vcc_io + .min_uv = 3300000, + .max_uv = 3300000, + .suspend_vol = 3000000, + }, + #else + { + .name = "dcdc4", //vcc_io + .min_uv = 3000000, + .max_uv = 3000000, + .suspend_vol = 2800000, + }, + #endif +}; + +static struct pmu_info wm8326_ldo_info[] = { + { + .name = "ldo1", //vcc18_cif + .min_uv = 1800000, + .max_uv = 1800000, + .suspend_vol = 1800000, + }, + { + .name = "ldo2", //vccio_wl + .min_uv = 1800000, + .max_uv = 1800000, + .suspend_vol = 1800000, + }, + { + .name = "ldo3", // + .min_uv = 1100000, + .max_uv = 1100000, + .suspend_vol = 1100000, + }, + { + .name = "ldo4", //vdd11 + .min_uv = 1000000, + .max_uv = 1000000, + .suspend_vol = 1000000, + }, + { + .name = "ldo5", //vcc25 + .min_uv = 1800000, + .max_uv = 1800000, + .suspend_vol = 1800000, + }, + { + .name = "ldo6", //vcc33 + .min_uv = 3300000, + .max_uv = 3300000, + .suspend_vol = 3300000, + }, + { + .name = "ldo7", //vcc28_cif + .min_uv = 2800000, + .max_uv = 2800000, + .suspend_vol = 2800000, + }, + { + .name = "ldo8", //vcca33 + .min_uv = 3300000, + .max_uv = 3300000, + .suspend_vol = 3300000, + }, + { + .name = "ldo9", //vcc_tp + .min_uv = 3300000, + .max_uv = 3300000, + .suspend_vol = 3300000, + }, + { + .name = "ldo10", //flash_io + .min_uv = 1800000, + .max_uv = 1800000, + .suspend_vol = 1800000, + }, +}; + +#include "board-pmu-wm8326.c" +#endif + +#ifdef CONFIG_MFD_TPS65910 +#ifdef CONFIG_ARCH_RK3066B +#define TPS65910_HOST_IRQ RK30_PIN0_PB3 +#else +#define TPS65910_HOST_IRQ RK30_PIN6_PA4 +#endif + +#define PMU_POWER_SLEEP RK30_PIN0_PA1 + +static struct pmu_info tps65910_dcdc_info[] = { + { + .name = "vdd_cpu", //arm + .min_uv = 1000000, + .max_uv = 1000000, + }, + { + .name = "vdd2", //ddr + .min_uv = 1200000, + .max_uv = 1200000, + }, + { + .name = "vio", //vcc_io + .min_uv = 3000000, + .max_uv = 3000000, + }, + +}; +static struct pmu_info tps65910_ldo_info[] = { + { + .name = "vpll", //vcc25 + .min_uv = 2500000, + .max_uv = 2500000, + }, + { + .name = "vdig1", //vcc18_cif + .min_uv = 1800000, + .max_uv = 1800000, + }, + { + .name = "vdig2", //vdd11 + .min_uv = 1000000, + .max_uv = 1000000, + }, + { + .name = "vaux1", //vcc25_hdmi + .min_uv = 2500000, + .max_uv = 2500000, + }, + { + .name = "vaux2", //vcca33 + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "vaux33", //vcc_tp + .min_uv = 3300000, + .max_uv = 3300000, + }, + { + .name = "vmmc", //vcc28_cif + .min_uv = 2800000, + .max_uv = 2800000, + }, + { + .name = "vdac", //vccio_wl + .min_uv = 1800000, + .max_uv = 1800000, + }, + }; + +#include "board-pmu-tps65910.c" +#endif + +static struct i2c_board_info __initdata i2c1_info[] = { +#if defined (CONFIG_REGULATOR_ACT8846) + { + .type = "act8846", + .addr = 0x5a, + .flags = 0, + .irq = ACT8846_HOST_IRQ, + .platform_data=&act8846_data, + }, +#endif +#if defined (CONFIG_RTC_HYM8563) + { + .type = "rtc_hym8563", + .addr = 0x51, + .flags = 0, + .irq = RK30_PIN0_PB5, + }, +#endif +#if defined (CONFIG_MFD_WM831X_I2C) + { + .type = "wm8326", + .addr = 0x34, + .flags = 0, + .irq = RK30_PIN0_PB3, + .platform_data = &wm831x_platdata, + }, +#endif +#if defined (CONFIG_MFD_TPS65910) + { + .type = "tps65910", + .addr = TPS65910_I2C_ID0, + .flags = 0, + .irq = TPS65910_HOST_IRQ, + .platform_data = &tps65910_data, + }, +#endif +}; +#endif + +void __sramfunc board_pmu_suspend(void) +{ + #if defined (CONFIG_REGULATOR_ACT8846) + if(pmic_is_act8846()) + board_pmu_act8846_suspend(); + #endif + #if defined (CONFIG_MFD_WM831X_I2C) + if(pmic_is_wm8326()) + board_pmu_wm8326_suspend(); + #endif + #if defined (CONFIG_MFD_TPS65910) + if(pmic_is_tps65910()) + board_pmu_tps65910_suspend(); + #endif +} + +void __sramfunc board_pmu_resume(void) +{ + #if defined (CONFIG_REGULATOR_ACT8846) + if(pmic_is_act8846()) + board_pmu_act8846_resume(); + #endif + #if defined (CONFIG_MFD_WM831X_I2C) + if(pmic_is_wm8326()) + board_pmu_wm8326_resume(); + #endif + #if defined (CONFIG_MFD_TPS65910) + if(pmic_is_tps65910()) + board_pmu_tps65910_resume(); + #endif +} + + int __sramdata gpio3d6_iomux,gpio3d6_do,gpio3d6_dir,gpio3d6_en; + +#define grf_readl(offset) readl_relaxed(RK30_GRF_BASE + offset) +#define grf_writel(v, offset) do { writel_relaxed(v, RK30_GRF_BASE + offset); dsb(); } while (0) + +void __sramfunc rk30_pwm_logic_suspend_voltage(void) +{ +#ifdef CONFIG_RK30_PWM_REGULATOR + +// int gpio0d7_iomux,gpio0d7_do,gpio0d7_dir,gpio0d7_en; + sram_udelay(10000); + gpio3d6_iomux = readl_relaxed(GRF_GPIO3D_IOMUX); + gpio3d6_do = grf_readl(GRF_GPIO3H_DO); + gpio3d6_dir = grf_readl(GRF_GPIO3H_DIR); + gpio3d6_en = grf_readl(GRF_GPIO3H_EN); + + writel_relaxed((1<<28), GRF_GPIO3D_IOMUX); + grf_writel((1<<30)|(1<<14), GRF_GPIO3H_DIR); + grf_writel((1<<30)|(1<<14), GRF_GPIO3H_DO); + grf_writel((1<<30)|(1<<14), GRF_GPIO3H_EN); +#endif +} +void __sramfunc rk30_pwm_logic_resume_voltage(void) +{ +#ifdef CONFIG_RK30_PWM_REGULATOR + writel_relaxed((1<<28)|gpio3d6_iomux, GRF_GPIO3D_IOMUX); + grf_writel((1<<30)|gpio3d6_en, GRF_GPIO3H_EN); + grf_writel((1<<30)|gpio3d6_dir, GRF_GPIO3H_DIR); + grf_writel((1<<30)|gpio3d6_do, GRF_GPIO3H_DO); + sram_udelay(10000); + +#endif + +} +extern void pwm_suspend_voltage(void); +extern void pwm_resume_voltage(void); +void rk30_pwm_suspend_voltage_set(void) +{ +#ifdef CONFIG_RK30_PWM_REGULATOR + pwm_suspend_voltage(); +#endif +} +void rk30_pwm_resume_voltage_set(void) +{ +#ifdef CONFIG_RK30_PWM_REGULATOR + pwm_resume_voltage(); +#endif +} + + +#ifdef CONFIG_I2C2_RK30 +static struct i2c_board_info __initdata i2c2_info[] = { +#if defined (CONFIG_CT36X_TS) + { + .type = CT36X_NAME, + .addr = 0x01, + .flags = 0, + .platform_data = &ct36x_info, + }, +#endif +#if defined (CONFIG_LS_CM3217) + { + .type = "lightsensor", + .addr = 0x10, + .flags = 0, + .platform_data = &cm3217_info, + }, +#endif +}; +#endif + +#ifdef CONFIG_I2C3_RK30 +static struct i2c_board_info __initdata i2c3_info[] = { +}; +#endif + +#ifdef CONFIG_I2C4_RK30 +static struct i2c_board_info __initdata i2c4_info[] = { +#ifdef CONFIG_MFD_RK610 + { + .type = "rk610_ctl", + .addr = 0x40, + .flags = 0, + .platform_data = &rk610_ctl_pdata, + }, +#ifdef CONFIG_RK610_TVOUT + { + .type = "rk610_tvout", + .addr = 0x42, + .flags = 0, + }, +#endif +#ifdef CONFIG_HDMI_RK610 + { + .type = "rk610_hdmi", + .addr = 0x46, + .flags = 0, + .irq = INVALID_GPIO, + }, +#endif +#ifdef CONFIG_SND_SOC_RK610 + {//RK610_CODEC addr from 0x60 to 0x80 (0x60~0x80) + .type = "rk610_i2c_codec", + .addr = 0x60, + .flags = 0, + }, +#endif +#endif + +}; +#endif + +#ifdef CONFIG_I2C_GPIO_RK30 +#define I2C_SDA_PIN INVALID_GPIO// RK30_PIN2_PD6 //set sda_pin here +#define I2C_SCL_PIN INVALID_GPIO//RK30_PIN2_PD7 //set scl_pin here +static int rk30_i2c_io_init(void) +{ + //set iomux (gpio) here + //rk30_mux_api_set(GPIO2D7_I2C1SCL_NAME, GPIO2D_GPIO2D7); + //rk30_mux_api_set(GPIO2D6_I2C1SDA_NAME, GPIO2D_GPIO2D6); + + return 0; +} +struct i2c_gpio_platform_data default_i2c_gpio_data = { + .sda_pin = I2C_SDA_PIN, + .scl_pin = I2C_SCL_PIN, + .udelay = 5, // clk = 500/udelay = 100Khz + .timeout = 100,//msecs_to_jiffies(100), + .bus_num = 5, + .io_init = rk30_i2c_io_init, +}; +static struct i2c_board_info __initdata i2c_gpio_info[] = { +}; +#endif + +static void __init rk30_i2c_register_board_info(void) +{ +#ifdef CONFIG_I2C0_RK30 + i2c_register_board_info(0, i2c0_info, ARRAY_SIZE(i2c0_info)); +#endif +#ifdef CONFIG_I2C1_RK30 + i2c_register_board_info(1, i2c1_info, ARRAY_SIZE(i2c1_info)); +#endif +#ifdef CONFIG_I2C2_RK30 + i2c_register_board_info(2, i2c2_info, ARRAY_SIZE(i2c2_info)); +#endif +#ifdef CONFIG_I2C3_RK30 + i2c_register_board_info(3, i2c3_info, ARRAY_SIZE(i2c3_info)); +#endif +#ifdef CONFIG_I2C4_RK30 + i2c_register_board_info(4, i2c4_info, ARRAY_SIZE(i2c4_info)); +#endif +#ifdef CONFIG_I2C_GPIO_RK30 + i2c_register_board_info(5, i2c_gpio_info, ARRAY_SIZE(i2c_gpio_info)); +#endif +} +//end of i2c + +#define POWER_ON_PIN RK30_PIN0_PA0 //power_hold +static void rk30_pm_power_off(void) +{ + printk(KERN_ERR "rk30_pm_power_off start...\n"); + gpio_direction_output(POWER_ON_PIN, GPIO_LOW); +#if defined(CONFIG_MFD_WM831X) + wm831x_set_bits(Wm831x,WM831X_GPIO_LEVEL,0x0001,0x0000); //set sys_pwr 0 + wm831x_device_shutdown(Wm831x);//wm8326 shutdown +#endif + while (1); +} + +static void __init machine_rk30_board_init(void) +{ + //avs_init(); + gpio_request(POWER_ON_PIN, "poweronpin"); + gpio_direction_output(POWER_ON_PIN, GPIO_HIGH); + + pm_power_off = rk30_pm_power_off; + + gpio_direction_output(POWER_ON_PIN, GPIO_HIGH); + + + rk30_i2c_register_board_info(); + spi_register_board_info(board_spi_devices, ARRAY_SIZE(board_spi_devices)); + platform_add_devices(devices, ARRAY_SIZE(devices)); + board_usb_detect_init(RK30_PIN0_PA7); + +#ifdef CONFIG_WIFI_CONTROL_FUNC + rk29sdk_wifi_bt_gpio_control_init(); +#endif + +#if defined(CONFIG_MT6620) + clk_set_rate(clk_get_sys("rk_serial.1", "uart"), 48*1000000); +#endif +} + +static void __init rk30_reserve(void) +{ +#ifdef CONFIG_ION + rk30_ion_pdata.heaps[0].base = board_mem_reserve_add("ion", ION_RESERVE_SIZE); +#endif +#ifdef CONFIG_FB_ROCKCHIP + resource_fb[0].start = board_mem_reserve_add("fb0", RK30_FB0_MEM_SIZE); + resource_fb[0].end = resource_fb[0].start + RK30_FB0_MEM_SIZE - 1; + #if 0 + resource_fb[1].start = board_mem_reserve_add("ipp buf", RK30_FB0_MEM_SIZE); + resource_fb[1].end = resource_fb[1].start + RK30_FB0_MEM_SIZE - 1; + resource_fb[2].start = board_mem_reserve_add("fb2", RK30_FB0_MEM_SIZE); + resource_fb[2].end = resource_fb[2].start + RK30_FB0_MEM_SIZE - 1; + #endif +#endif +#ifdef CONFIG_VIDEO_RK29 + rk30_camera_request_reserve_mem(); +#endif + +#ifdef CONFIG_GPS_RK + //it must be more than 8MB + rk_gps_info.u32MemoryPhyAddr = board_mem_reserve_add("gps", SZ_8M); +#endif + board_mem_reserved(); +} + +/** + * dvfs_cpu_logic_table: table for arm and logic dvfs + * @frequency : arm frequency + * @cpu_volt : arm voltage depend on frequency + * @logic_volt : logic voltage arm requests depend on frequency + * comments : min arm/logic voltage + */ +static struct dvfs_arm_table dvfs_cpu_logic_table[] = { + {.frequency = 312 * 1000, .cpu_volt = 850 * 1000, .logic_volt = 1000 * 1000}, + {.frequency = 504 * 1000, .cpu_volt = 900 * 1000, .logic_volt = 1000 * 1000}, + {.frequency = 816 * 1000, .cpu_volt = 950 * 1000, .logic_volt = 1000 * 1000}, + {.frequency = 1008 * 1000, .cpu_volt = 1025 * 1000, .logic_volt = 1000 * 1000}, + {.frequency = 1200 * 1000, .cpu_volt = 1100 * 1000, .logic_volt = 1050 * 1000}, + {.frequency = 1416 * 1000, .cpu_volt = 1200 * 1000, .logic_volt = 1150 * 1000}, + {.frequency = 1608 * 1000, .cpu_volt = 1300 * 1000, .logic_volt = 1250 * 1000}, + {.frequency = CPUFREQ_TABLE_END}, +}; + +static struct cpufreq_frequency_table dvfs_gpu_table[] = { + {.frequency = 100 * 1000, .index = 900 * 1000}, + {.frequency = 200 * 1000, .index = 900 * 1000}, + {.frequency = 266 * 1000, .index = 900 * 1000}, + {.frequency = 300 * 1000, .index = 900 * 1000}, + {.frequency = 400 * 1000, .index = 950 * 1000}, + {.frequency = 600 * 1000, .index = 1100 * 1000}, + {.frequency = CPUFREQ_TABLE_END}, +}; + +static struct cpufreq_frequency_table dvfs_ddr_table[] = { + {.frequency = 300 * 1000, .index = 900 * 1000}, + {.frequency = 400 * 1000, .index = 950 * 1000}, + {.frequency = CPUFREQ_TABLE_END}, +}; +#define DVFS_CPU_TABLE_SIZE (ARRAY_SIZE(dvfs_cpu_logic_table)) +static struct cpufreq_frequency_table cpu_dvfs_table[DVFS_CPU_TABLE_SIZE]; +static struct cpufreq_frequency_table dep_cpu2core_table[DVFS_CPU_TABLE_SIZE]; + +void __init board_clock_init(void) +{ + rk30_clock_data_init(periph_pll_default, codec_pll_default, RK30_CLOCKS_DEFAULT_FLAGS); + dvfs_set_arm_logic_volt(dvfs_cpu_logic_table, cpu_dvfs_table, dep_cpu2core_table); + dvfs_set_freq_volt_table(clk_get(NULL, "gpu"), dvfs_gpu_table); + dvfs_set_freq_volt_table(clk_get(NULL, "ddr"), dvfs_ddr_table); +} + +MACHINE_START(RK30, "RK30board") + .boot_params = PLAT_PHYS_OFFSET + 0x800, + .fixup = rk30_fixup, + .reserve = &rk30_reserve, + .map_io = rk30_map_io, + .init_irq = rk30_init_irq, + .timer = &rk30_timer, + .init_machine = machine_rk30_board_init, +MACHINE_END diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 60f9b987eea2..4d456d27e2e2 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -11,6 +11,9 @@ menuconfig INPUT_TOUCHSCREEN if INPUT_TOUCHSCREEN +config CT36X_TS + tristate "CT36X touchscreens support" + config TOUCHSCREEN_XPT2046_SPI tristate "XPT2046 based touchscreens:SPI Interface" depends on SPIM_RK29 diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile index 043d5d9dd248..67b0729ed3cb 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -5,7 +5,7 @@ # Each configuration option enables a list of files. wm97xx-ts-y := wm97xx-core.o - +obj-y += ct36x/ obj-$(CONFIG_TOUCHSCREEN_88PM860X) += 88pm860x-ts.o obj-$(CONFIG_TOUCHSCREEN_AD7877) += ad7877.o obj-$(CONFIG_TOUCHSCREEN_AD7879) += ad7879.o diff --git a/drivers/input/touchscreen/ct36x/Kconfig b/drivers/input/touchscreen/ct36x/Kconfig new file mode 100644 index 000000000000..335cff4f7402 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/Kconfig @@ -0,0 +1,13 @@ +# +# Adc hardware configuration +# + +config CT360_TS + tristate "ct360" + +config CT361_TS + tristate "ct361" + +config CT363_TS + tristate "ct363" + diff --git a/drivers/input/touchscreen/ct36x/LX20JS06_A1_CT363_V03_5198_121015.dat b/drivers/input/touchscreen/ct36x/LX20JS06_A1_CT363_V03_5198_121015.dat new file mode 100644 index 000000000000..dd2c3d8b25b4 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/LX20JS06_A1_CT363_V03_5198_121015.dat @@ -0,0 +1,4096 @@ + 0x02, 0x65, 0x1E, 0x02, 0x00, 0x3F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x78, 0xC9, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x27, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x65, 0x17, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x64, 0xE8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x78, 0xA0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x27, 0xFC, 0x75, 0x86, + 0x09, 0x75, 0x84, 0x9C, 0xD2, 0xA9, 0x22, 0x32, + 0x90, 0x3F, 0xF0, 0x74, 0x56, 0xF0, 0xA3, 0x74, + 0x54, 0xF0, 0xA3, 0x74, 0x4C, 0xF0, 0x22, 0x78, + 0xE4, 0x7C, 0x12, 0x7D, 0x01, 0x7B, 0xFF, 0x7A, + 0x78, 0x79, 0x7D, 0x7E, 0x00, 0x7F, 0x05, 0x12, + 0x59, 0x49, 0x90, 0x12, 0xF2, 0x12, 0x5B, 0x94, + 0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x12, 0xF6, 0x12, + 0x5B, 0x94, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0A, + 0x7C, 0x13, 0x7D, 0x01, 0x7B, 0xFF, 0x7A, 0x78, + 0x79, 0x82, 0x7E, 0x00, 0x7F, 0x0A, 0x12, 0x59, + 0x49, 0x78, 0x14, 0x7C, 0x13, 0x7D, 0x01, 0x7B, + 0xFF, 0x7A, 0x78, 0x79, 0x8C, 0x7E, 0x00, 0x7F, + 0x14, 0x12, 0x59, 0x49, 0xC2, 0x1A, 0xE4, 0x90, + 0xED, 0x9F, 0x0F, 0x6F, 0xED, 0x6D, 0x0F, 0x6F, + 0xED, 0x6C, 0x0F, 0x6F, 0xEC, 0xF6, 0x8B, 0xFC, + 0xF0, 0x30, 0x15, 0x0A, 0x90, 0x88, 0xB0, 0xE0, + 0x90, 0x88, 0xC1, 0xF0, 0x80, 0x05, 0xE4, 0x90, + 0x88, 0xC1, 0xF0, 0xE4, 0x90, 0x12, 0xDF, 0xF0, + 0xC2, 0x0F, 0xC2, 0x11, 0x90, 0x13, 0x09, 0xE0, + 0xFF, 0x90, 0x88, 0xC1, 0xE0, 0xD3, 0x9F, 0x40, + 0x03, 0x02, 0x03, 0xB1, 0x90, 0x88, 0xC0, 0xE0, + 0x9F, 0x40, 0x03, 0x02, 0x03, 0xB1, 0xE4, 0xF0, + 0x75, 0x9E, 0x55, 0x90, 0x12, 0xDB, 0xF0, 0x90, + 0x12, 0xDB, 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x40, + 0x03, 0x02, 0x03, 0x71, 0x75, 0x9E, 0x55, 0x74, + 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0xE0, 0x64, 0x01, 0x60, 0x15, 0x90, 0x12, + 0xDB, 0xE0, 0x24, 0xE5, 0xF5, 0x82, 0xE4, 0x34, + 0x88, 0xF5, 0x83, 0xE0, 0x64, 0x02, 0x60, 0x03, + 0x02, 0x03, 0x59, 0x90, 0x12, 0xDB, 0xE0, 0xFF, + 0x90, 0x88, 0xC0, 0xE0, 0x24, 0x04, 0xF5, 0x82, + 0xE4, 0x34, 0x13, 0xF5, 0x83, 0xEF, 0xF0, 0x74, + 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0x74, 0x04, 0xF0, 0xE4, 0x90, 0x12, 0xDC, + 0xF0, 0x90, 0x88, 0xC1, 0xE0, 0xFF, 0x90, 0x12, + 0xDC, 0xE0, 0xFE, 0xC3, 0x9F, 0x40, 0x03, 0x02, + 0x03, 0x51, 0x75, 0x9E, 0x55, 0x90, 0x12, 0xDB, + 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0xC3, 0x9D, + 0xEA, 0x9C, 0x40, 0x36, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, + 0x12, 0xDC, 0xE0, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, 0xEC, + 0x9E, 0x90, 0x12, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x80, 0x37, 0x90, 0x12, 0xDC, 0xE0, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, + 0xEC, 0x9E, 0x90, 0x12, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0xFF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0x90, 0x12, 0xDC, 0xE0, 0xFE, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0xC3, 0x9D, + 0xEA, 0x9C, 0x40, 0x33, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0xC3, 0x9D, 0xFF, 0xEE, 0x9C, 0x90, 0x12, + 0xF0, 0xF0, 0xA3, 0xEF, 0xF0, 0x80, 0x37, 0x90, + 0x12, 0xDC, 0xE0, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x12, 0xDB, + 0xE0, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, 0xEC, 0x9E, 0x90, + 0x12, 0xF0, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xFB, 0xAA, + 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, 0xF0, 0xE0, + 0xA3, 0xE0, 0xE4, 0xFC, 0xFD, 0x12, 0x5A, 0x34, + 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, + 0x90, 0x12, 0xEE, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xFB, 0xAA, 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, + 0xEE, 0xE0, 0xA3, 0xE0, 0xE4, 0xFC, 0xFD, 0x12, + 0x5A, 0x34, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, + 0xD0, 0x00, 0xEF, 0x2B, 0xFF, 0xEE, 0x3A, 0xFE, + 0xED, 0x39, 0xFD, 0xEC, 0x38, 0xFC, 0x90, 0x88, + 0xC0, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, + 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, + 0x83, 0xC0, 0x82, 0x90, 0x12, 0xDC, 0xE0, 0xD0, + 0x82, 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, + 0xC5, 0x12, 0x5B, 0x88, 0x90, 0x88, 0xC0, 0xE0, + 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, + 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0x90, 0x12, 0xDC, 0xE0, 0xD0, 0x82, 0xD0, + 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xE4, 0x7B, 0x32, 0xFA, 0xF9, 0xF8, + 0xD3, 0x12, 0x5B, 0x51, 0x40, 0x02, 0xD2, 0x1A, + 0x90, 0x12, 0xDC, 0xE0, 0x04, 0xF0, 0x02, 0x01, + 0x49, 0x90, 0x88, 0xC0, 0xE0, 0x04, 0xF0, 0x80, + 0x0F, 0x90, 0x12, 0xDB, 0xE0, 0x24, 0xE5, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x12, 0xDB, 0xE0, 0x04, 0xF0, 0x02, 0x00, + 0xEF, 0xE4, 0x90, 0x12, 0xDC, 0xF0, 0x90, 0x13, + 0x09, 0xE0, 0xFF, 0x90, 0x12, 0xDC, 0xE0, 0xFE, + 0xC3, 0x9F, 0x50, 0x2D, 0x90, 0x88, 0xC1, 0xE0, + 0xFF, 0xEE, 0xC3, 0x9F, 0x50, 0x0F, 0x74, 0xA0, + 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, + 0x74, 0x01, 0xF0, 0x80, 0x0C, 0x74, 0xA0, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xE4, + 0xF0, 0x90, 0x12, 0xDC, 0xE0, 0x04, 0xF0, 0x80, + 0xC5, 0x75, 0x9E, 0x55, 0x90, 0x13, 0x09, 0xE0, + 0xFF, 0x90, 0x88, 0xC1, 0xE0, 0xD3, 0x9F, 0x40, + 0x03, 0x02, 0x1B, 0x20, 0x90, 0x88, 0xC0, 0xE0, + 0x9F, 0x40, 0x03, 0x02, 0x1B, 0x20, 0x30, 0x1A, + 0x03, 0x02, 0x1B, 0x20, 0xE0, 0x94, 0x00, 0x50, + 0x03, 0x02, 0x18, 0x51, 0x90, 0x88, 0xC1, 0xE0, + 0xD3, 0x94, 0x00, 0x50, 0x03, 0x02, 0x18, 0x51, + 0xE0, 0xFF, 0x90, 0x88, 0xC0, 0xE0, 0xD3, 0x9F, + 0x40, 0x03, 0x02, 0x0E, 0x23, 0x90, 0x88, 0xC0, + 0xE0, 0x24, 0xE3, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE0, 0xFF, 0x90, 0x88, 0xC1, 0xE0, + 0xFE, 0xEF, 0x6E, 0x70, 0x03, 0x02, 0x06, 0x01, + 0x75, 0x9E, 0x55, 0xE4, 0x90, 0x12, 0xDA, 0xF0, + 0x90, 0x88, 0xC1, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x14, 0x74, 0xE9, + 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE4, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, + 0x80, 0xDE, 0xC2, 0x19, 0xE4, 0x90, 0x12, 0xDA, + 0xF0, 0x90, 0x88, 0xC0, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x4E, 0x74, + 0xE4, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xFF, 0x90, 0x88, 0xC1, 0xE0, 0xFE, + 0xEF, 0xB5, 0x06, 0x04, 0xD2, 0x19, 0x80, 0x35, + 0x74, 0xE9, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE0, 0x70, 0x1C, 0x90, 0x12, 0xDA, + 0xE0, 0x24, 0xE4, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE0, 0x24, 0xE9, 0xF5, 0x82, 0xE4, + 0x34, 0x12, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x80, + 0x04, 0xD2, 0x19, 0x80, 0x08, 0x90, 0x12, 0xDA, + 0xE0, 0x04, 0xF0, 0x80, 0xA4, 0x90, 0x12, 0xF6, + 0x12, 0x5B, 0x94, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x19, 0x03, 0x02, 0x05, 0x9E, 0xE4, 0x90, 0x12, + 0xDA, 0xF0, 0x90, 0x88, 0xC0, 0xE0, 0xFF, 0x90, + 0x12, 0xDA, 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x77, + 0xE0, 0xFF, 0x24, 0xE4, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0xFA, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xED, + 0xF0, 0x90, 0x12, 0xF6, 0xE0, 0xF8, 0xA3, 0xE0, + 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xEE, + 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, + 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0x90, 0x12, 0xDA, 0xE0, 0x24, 0xE4, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xD0, + 0x82, 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, + 0xC5, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xEB, 0x2F, 0xFF, 0xEA, + 0x3E, 0xFE, 0xE9, 0x3D, 0xFD, 0xE8, 0x3C, 0xFC, + 0x90, 0x12, 0xF6, 0x12, 0x5B, 0x88, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x04, 0xB2, 0x90, + 0x12, 0xF2, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xA3, 0xE0, 0xF8, + 0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, + 0xFB, 0xC3, 0x12, 0x5B, 0x51, 0x50, 0x47, 0x90, + 0x12, 0xF6, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x12, 0xF2, + 0x12, 0x5B, 0x88, 0xE4, 0x90, 0x12, 0xDA, 0xF0, + 0x90, 0x88, 0xC0, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x20, 0x74, 0xFA, + 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0xFF, 0x74, 0xFF, 0x2E, 0xF5, 0x82, 0xE4, + 0x34, 0x12, 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x80, 0xD2, 0xC2, 0x18, + 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x88, 0xC0, + 0xE0, 0x14, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFE, + 0xC3, 0x9F, 0x50, 0x3E, 0x74, 0xE4, 0x2E, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xFF, + 0x90, 0x88, 0xC1, 0xE0, 0xFE, 0xEF, 0xB5, 0x06, + 0x21, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x24, 0xE4, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, + 0xF0, 0x74, 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x04, 0xF0, 0xD2, 0x18, + 0x80, 0x08, 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, + 0x80, 0xB3, 0x30, 0x18, 0x03, 0x02, 0x03, 0xF5, + 0x90, 0x12, 0xE4, 0xE0, 0x04, 0xF0, 0x02, 0x03, + 0xF5, 0x90, 0x88, 0xC0, 0xE0, 0x90, 0x12, 0xE0, + 0xF0, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, + 0xE0, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFE, + 0xC3, 0x9F, 0x40, 0x03, 0x02, 0x18, 0x51, 0xE0, + 0xFF, 0x24, 0x04, 0xF5, 0x82, 0xE4, 0x34, 0x13, + 0xF5, 0x83, 0xE0, 0x90, 0x12, 0xE2, 0xF0, 0x74, + 0xFF, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0x90, 0x12, 0xE1, 0xF0, 0xC2, 0x0F, + 0xC2, 0x11, 0xEE, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0xB4, 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, + 0xC0, 0x83, 0xC0, 0x82, 0x90, 0x12, 0xE1, 0xE0, + 0xD0, 0x82, 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, + 0x5B, 0xC5, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x74, 0xFF, 0xFB, + 0xFA, 0xF9, 0xF8, 0xD3, 0x12, 0x5B, 0x51, 0x50, + 0x03, 0x02, 0x0E, 0x1A, 0x90, 0x12, 0xDA, 0xE0, + 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, + 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0x90, 0x12, 0xE1, 0xE0, 0xD0, 0x82, 0xD0, + 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xE4, 0x7B, 0xE0, 0x7A, 0x2E, 0xF9, + 0xF8, 0xC3, 0x12, 0x5B, 0x51, 0x50, 0x57, 0x90, + 0x12, 0xE1, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x90, 0x12, + 0xE2, 0xE0, 0xFE, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xEE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, + 0xA3, 0xED, 0xF0, 0x02, 0x09, 0xEC, 0x90, 0x12, + 0xDA, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, + 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, + 0x83, 0xC0, 0x82, 0x90, 0x12, 0xE1, 0xE0, 0xD0, + 0x82, 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, + 0xC5, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, 0x7B, 0xB8, 0x7A, + 0x0B, 0xF9, 0xF8, 0xC3, 0x12, 0x5B, 0x51, 0x40, + 0x03, 0x02, 0x08, 0x35, 0x90, 0x12, 0xE1, 0xE0, + 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xA3, 0xE0, + 0x25, 0xE0, 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, + 0x15, 0x83, 0x15, 0x82, 0xE0, 0x33, 0xFE, 0x90, + 0x12, 0xE2, 0xE0, 0xFC, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, + 0x3E, 0xFE, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, + 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, + 0x13, 0xD8, 0xF9, 0xFF, 0xEC, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, + 0x12, 0xE1, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xA3, 0xE0, 0x25, 0xE0, 0xFF, 0x05, 0x82, + 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, + 0x33, 0xFE, 0x90, 0x12, 0xE2, 0xE0, 0xFC, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, + 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, + 0xFF, 0xEA, 0x3E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, + 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0xEC, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0x02, 0x09, 0xEC, 0x90, 0x12, 0xDA, + 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, + 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, + 0xC0, 0x82, 0x90, 0x12, 0xE1, 0xE0, 0xD0, 0x82, + 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0xE4, 0x7B, 0xDC, 0x7A, 0x05, + 0xF9, 0xF8, 0xC3, 0x12, 0x5B, 0x51, 0x40, 0x03, + 0x02, 0x09, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0xFD, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x90, 0x12, 0xE1, 0xE0, 0xFC, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, + 0x2F, 0xFF, 0xEA, 0x3E, 0xC3, 0x13, 0xFE, 0xEF, + 0x13, 0xFF, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE2, + 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xEC, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEA, 0x3E, 0xC3, 0x13, 0xFE, 0xEF, 0x13, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x02, 0x09, 0xEC, 0x90, 0x12, + 0xE2, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xA3, 0xE0, 0x25, 0xE0, 0xFF, 0x05, 0x82, 0xD5, + 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, 0x33, + 0xFE, 0x90, 0x12, 0xE1, 0xE0, 0xFC, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, + 0xFF, 0xEA, 0x3E, 0xFE, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEA, 0x3E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, + 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0x90, 0x12, + 0xE2, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xA3, 0xE0, 0x25, 0xE0, 0xFF, + 0x05, 0x82, 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, + 0x82, 0xE0, 0x33, 0xFE, 0xEC, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEC, 0x3E, 0xFE, 0x90, 0x12, 0xE2, 0xE0, 0xFD, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, + 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, 0xEF, 0x78, + 0x02, 0xCE, 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, + 0xFF, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE2, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xC3, 0x9D, 0xFF, + 0xEE, 0x9C, 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x13, + 0x28, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xE2, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xC3, + 0x9D, 0xFF, 0xEE, 0x9C, 0xFE, 0x12, 0x78, 0xF1, + 0x90, 0x13, 0x2A, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x90, 0x13, 0x2A, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x13, 0x29, 0xE0, 0x2F, 0xFF, 0x90, 0x13, + 0x28, 0xE0, 0x3E, 0xFE, 0x90, 0x13, 0x2C, 0xF0, + 0xA3, 0xEF, 0xF0, 0xD3, 0x94, 0x0C, 0xEE, 0x94, + 0x00, 0x40, 0x4A, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xD3, 0x94, 0x04, 0x40, 0x0E, 0x74, + 0x81, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0x24, 0xFC, 0xF0, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xC3, 0x94, 0x01, 0x50, + 0x0C, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0xF1, 0x0A, + 0x74, 0x01, 0xF0, 0x80, 0x66, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x04, 0xF0, 0x74, 0x81, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0xD3, 0x94, 0x16, 0x40, 0x18, 0x90, 0x12, + 0xE2, 0xE0, 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0x74, 0x16, 0xF0, 0x90, 0xF1, + 0x0A, 0x74, 0x02, 0xF0, 0x80, 0x29, 0x90, 0x12, + 0x92, 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x08, 0x90, + 0x12, 0x60, 0xE0, 0x94, 0x00, 0x40, 0x09, 0x30, + 0x04, 0x06, 0x90, 0xF1, 0x0A, 0x74, 0x01, 0xF0, + 0x90, 0x12, 0x93, 0xE0, 0xD3, 0x94, 0x00, 0x40, + 0x06, 0x90, 0xF1, 0x0A, 0x74, 0x01, 0xF0, 0xC2, + 0x0F, 0xC2, 0x11, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xFD, 0x90, 0x13, 0x2C, 0xE0, 0xFA, + 0xA3, 0xE0, 0xFB, 0xD3, 0x9D, 0xEA, 0x94, 0x00, + 0x40, 0x13, 0xD2, 0x0F, 0xD2, 0x11, 0x74, 0x77, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0x74, 0x01, 0xF0, 0x80, 0x04, 0xC2, 0x0F, 0xC2, + 0x11, 0x90, 0x12, 0xE2, 0xE0, 0x24, 0x77, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xB4, + 0x01, 0x13, 0xD3, 0xEB, 0x94, 0x01, 0xEA, 0x94, + 0x00, 0x40, 0x06, 0xD2, 0x0F, 0xD2, 0x11, 0x80, + 0x04, 0xC2, 0x0F, 0xC2, 0x11, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x64, 0x01, 0x60, 0x03, + 0x02, 0x0C, 0x7F, 0x90, 0x12, 0xE1, 0xE0, 0xFE, + 0x24, 0x0A, 0xF5, 0x82, 0xE4, 0x34, 0x13, 0xF5, + 0x83, 0xE0, 0xFD, 0x74, 0xCA, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, + 0x50, 0x4D, 0xC2, 0x0D, 0x90, 0x12, 0xE2, 0xE0, + 0x24, 0x3C, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, + 0x83, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x24, 0x14, + 0xF5, 0x82, 0xE4, 0x34, 0x13, 0xF5, 0x83, 0xE0, + 0xFA, 0xA3, 0xE0, 0xD3, 0x9D, 0x74, 0x80, 0xF8, + 0xEA, 0x64, 0x80, 0x98, 0x50, 0x10, 0x74, 0xCA, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0x04, 0xF0, 0x02, 0x0C, 0x81, 0x90, 0x12, + 0xE2, 0xE0, 0x24, 0xCA, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x80, 0x72, 0x90, + 0x12, 0xE2, 0xE0, 0xFF, 0x24, 0xC0, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x74, + 0xCA, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE4, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x94, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x12, + 0xE2, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x96, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0xD2, 0x0D, 0x80, 0x02, 0xD2, + 0x0D, 0x30, 0x01, 0x57, 0x90, 0x12, 0xE1, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xE2, 0xE0, 0xFE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, + 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, + 0x02, 0x0D, 0x60, 0x20, 0x0F, 0x03, 0x02, 0x0D, + 0x60, 0x30, 0x11, 0x7C, 0x30, 0x0D, 0x79, 0x90, + 0x13, 0x2C, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xD3, + 0x94, 0x78, 0xEE, 0x94, 0x00, 0x40, 0x06, 0x90, + 0x12, 0x92, 0xE0, 0x04, 0xF0, 0xD3, 0xEF, 0x94, + 0x72, 0xEE, 0x94, 0x01, 0x40, 0x06, 0x90, 0x12, + 0x93, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xE2, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, + 0xE2, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, + 0x90, 0x12, 0xE1, 0xE0, 0xFF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x90, + 0x12, 0xE2, 0xE0, 0xFE, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, 0xE1, 0xE0, + 0xFF, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xE0, 0xFE, 0x90, 0x12, 0xE2, 0xE0, + 0xFD, 0x24, 0x14, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xEE, 0xF0, 0x74, 0x28, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, 0xFF, + 0x74, 0x3C, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xEF, 0xF0, 0x74, 0xE5, 0x2D, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0x74, 0x02, + 0xF0, 0x90, 0x12, 0xE1, 0xE0, 0x24, 0xA0, 0xF5, + 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x12, 0xDF, 0xE0, 0x04, 0xF0, 0x90, 0x88, + 0xC0, 0xE0, 0x14, 0xF0, 0x90, 0x88, 0xC1, 0xE0, + 0x14, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, + 0x02, 0x06, 0x0E, 0x90, 0x88, 0xC1, 0xE0, 0x24, + 0xE3, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0xFF, 0x90, 0x88, 0xC0, 0xE0, 0xFE, 0xEF, + 0x6E, 0x70, 0x03, 0x02, 0x10, 0x2F, 0x75, 0x9E, + 0x55, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x88, + 0xC0, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFE, + 0xC3, 0x9F, 0x50, 0x14, 0x74, 0xE9, 0x2E, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x80, 0xDE, + 0xC2, 0x19, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0x90, + 0x88, 0xC1, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, + 0xFE, 0xC3, 0x9F, 0x50, 0x4E, 0x74, 0xE4, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0xFF, 0x90, 0x88, 0xC0, 0xE0, 0xFE, 0xEF, 0xB5, + 0x06, 0x04, 0xD2, 0x19, 0x80, 0x35, 0x74, 0xE9, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0x70, 0x1C, 0x90, 0x12, 0xDA, 0xE0, 0x24, + 0xE4, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0x24, 0xE9, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x80, 0x04, 0xD2, + 0x19, 0x80, 0x08, 0x90, 0x12, 0xDA, 0xE0, 0x04, + 0xF0, 0x80, 0xA4, 0x90, 0x12, 0xF6, 0x12, 0x5B, + 0x94, 0x00, 0x00, 0x00, 0x00, 0x30, 0x19, 0x03, + 0x02, 0x0F, 0xCC, 0xE4, 0x90, 0x12, 0xDA, 0xF0, + 0x90, 0x88, 0xC1, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x77, 0xE0, 0xFF, + 0x24, 0xE4, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xFD, 0x74, 0xFA, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xED, 0xF0, 0x90, + 0x12, 0xF6, 0xE0, 0xF8, 0xA3, 0xE0, 0xF9, 0xA3, + 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0x74, 0xE4, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, + 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0x90, 0x12, 0xDA, 0xE0, 0xD0, 0x82, 0xD0, + 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xEB, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, + 0xE9, 0x3D, 0xFD, 0xE8, 0x3C, 0xFC, 0x90, 0x12, + 0xF6, 0x12, 0x5B, 0x88, 0x90, 0x12, 0xDA, 0xE0, + 0x04, 0xF0, 0x02, 0x0E, 0xE0, 0x90, 0x12, 0xF2, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0xA3, 0xE0, 0xF8, 0xA3, 0xE0, + 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xC3, + 0x12, 0x5B, 0x51, 0x50, 0x47, 0x90, 0x12, 0xF6, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x90, 0x12, 0xF2, 0x12, 0x5B, + 0x88, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x88, + 0xC1, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFE, + 0xC3, 0x9F, 0x50, 0x20, 0x74, 0xFA, 0x2E, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xFF, + 0x74, 0xFF, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x12, 0xDA, 0xE0, + 0x04, 0xF0, 0x80, 0xD2, 0xC2, 0x18, 0xE4, 0x90, + 0x12, 0xDA, 0xF0, 0x90, 0x88, 0xC1, 0xE0, 0x14, + 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFE, 0xC3, 0x9F, + 0x50, 0x3E, 0x74, 0xE4, 0x2E, 0xF5, 0x82, 0xE4, + 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xFF, 0x90, 0x88, + 0xC0, 0xE0, 0xFE, 0xEF, 0xB5, 0x06, 0x21, 0x90, + 0x12, 0xDA, 0xE0, 0xFF, 0x24, 0xE4, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x74, + 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0x04, 0xF0, 0xD2, 0x18, 0x80, 0x08, + 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x80, 0xB3, + 0x30, 0x18, 0x03, 0x02, 0x0E, 0x23, 0x90, 0x12, + 0xE4, 0xE0, 0x04, 0xF0, 0x02, 0x0E, 0x23, 0x90, + 0x88, 0xC1, 0xE0, 0x90, 0x12, 0xE0, 0xF0, 0xE4, + 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, 0xE0, 0xE0, + 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xC3, 0x9F, 0x40, + 0x03, 0x02, 0x18, 0x51, 0xE0, 0xFF, 0x24, 0xFF, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0xFE, 0x24, 0x04, 0xF5, 0x82, 0xE4, 0x34, 0x13, + 0xF5, 0x83, 0xE0, 0x90, 0x12, 0xE2, 0xF0, 0x90, + 0x12, 0xE1, 0xEF, 0xF0, 0xC2, 0x0F, 0xC2, 0x11, + 0xEE, 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, + 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, + 0xC0, 0x82, 0x90, 0x12, 0xDA, 0xE0, 0xD0, 0x82, + 0xD0, 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x74, 0xFF, 0xFB, 0xFA, 0xF9, + 0xF8, 0xD3, 0x12, 0x5B, 0x51, 0x50, 0x03, 0x02, + 0x18, 0x48, 0x90, 0x12, 0xDA, 0xE0, 0x75, 0xF0, + 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, 0xE4, 0x34, + 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, 0x82, 0x90, + 0x12, 0xE1, 0xE0, 0xD0, 0x82, 0xD0, 0x83, 0x75, + 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xE4, 0x7B, 0xE0, 0x7A, 0x2E, 0xF9, 0xF8, 0xC3, + 0x12, 0x5B, 0x51, 0x50, 0x57, 0x90, 0x12, 0xE1, + 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xE2, 0xE0, + 0xFE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, + 0xA3, 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, + 0xF0, 0x02, 0x14, 0x1A, 0x90, 0x12, 0xDA, 0xE0, + 0x75, 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, + 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0x90, 0x12, 0xE1, 0xE0, 0xD0, 0x82, 0xD0, + 0x83, 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xE4, 0x7B, 0xB8, 0x7A, 0x0B, 0xF9, + 0xF8, 0xC3, 0x12, 0x5B, 0x51, 0x40, 0x03, 0x02, + 0x12, 0x63, 0x90, 0x12, 0xE1, 0xE0, 0xFD, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xA3, 0xE0, 0x25, 0xE0, + 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, 0x15, 0x83, + 0x15, 0x82, 0xE0, 0x33, 0xFE, 0x90, 0x12, 0xE2, + 0xE0, 0xFC, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFA, + 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, 0xEF, + 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, 0x13, 0xD8, + 0xF9, 0xFF, 0xEC, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE1, + 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xA3, + 0xE0, 0x25, 0xE0, 0xFF, 0x05, 0x82, 0xD5, 0x82, + 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, 0x33, 0xFE, + 0x90, 0x12, 0xE2, 0xE0, 0xFC, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEA, 0x3E, 0xFE, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, + 0x3E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, + 0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0xEC, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x02, 0x14, 0x1A, 0x90, 0x12, 0xDA, 0xE0, 0x75, + 0xF0, 0x14, 0xA4, 0x24, 0xB4, 0xF5, 0x82, 0xE4, + 0x34, 0x37, 0xF5, 0x83, 0xC0, 0x83, 0xC0, 0x82, + 0x90, 0x12, 0xE1, 0xE0, 0xD0, 0x82, 0xD0, 0x83, + 0x75, 0xF0, 0x04, 0x12, 0x5B, 0xC5, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xE4, 0x7B, 0xDC, 0x7A, 0x05, 0xF9, 0xF8, + 0xC3, 0x12, 0x5B, 0x51, 0x40, 0x03, 0x02, 0x13, + 0x34, 0x90, 0x12, 0xE2, 0xE0, 0xFD, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x12, 0xE1, 0xE0, 0xFC, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEA, 0x3E, 0xC3, 0x13, 0xFE, 0xEF, 0x13, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE2, 0xE0, 0xFD, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xEC, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, + 0xC3, 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0xED, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0x02, 0x14, 0x1A, 0x90, 0x12, 0xE2, 0xE0, + 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xA3, 0xE0, + 0x25, 0xE0, 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, + 0x15, 0x83, 0x15, 0x82, 0xE0, 0x33, 0xFE, 0x90, + 0x12, 0xE1, 0xE0, 0xFC, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, + 0x3E, 0xFE, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, + 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, + 0x13, 0xD8, 0xF9, 0xFF, 0x90, 0x12, 0xE2, 0xE0, + 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xA3, 0xE0, 0x25, 0xE0, 0xFF, 0x05, 0x82, + 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, + 0x33, 0xFE, 0xEC, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, 0xEC, 0x3E, + 0xFE, 0x90, 0x12, 0xE2, 0xE0, 0xFD, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, + 0xFF, 0xEA, 0x3E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, + 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0xED, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xC3, 0x9D, 0xFF, 0xEE, 0x9C, + 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x13, 0x28, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE2, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xC3, 0x9D, 0xFF, + 0xEE, 0x9C, 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x13, + 0x2A, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x13, + 0x2A, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x13, + 0x29, 0xE0, 0x2F, 0xFF, 0x90, 0x13, 0x28, 0xE0, + 0x3E, 0xFE, 0x90, 0x13, 0x2C, 0xF0, 0xA3, 0xEF, + 0xF0, 0xD3, 0x94, 0x0C, 0xEE, 0x94, 0x00, 0x40, + 0x4A, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x24, 0x81, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0xD3, 0x94, 0x04, 0x40, 0x0E, 0x74, 0x81, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0x24, 0xFC, 0xF0, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xC3, 0x94, 0x01, 0x50, 0x0C, 0x74, + 0x81, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE4, 0xF0, 0x90, 0xF1, 0x0A, 0x74, 0x01, + 0xF0, 0x80, 0x66, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0x04, 0xF0, 0x74, 0x81, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xD3, + 0x94, 0x16, 0x40, 0x18, 0x90, 0x12, 0xE2, 0xE0, + 0x24, 0x81, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0x74, 0x16, 0xF0, 0x90, 0xF1, 0x0A, 0x74, + 0x02, 0xF0, 0x80, 0x29, 0x90, 0x12, 0x92, 0xE0, + 0xD3, 0x94, 0x00, 0x50, 0x08, 0x90, 0x12, 0x60, + 0xE0, 0x94, 0x00, 0x40, 0x09, 0x30, 0x04, 0x06, + 0x90, 0xF1, 0x0A, 0x74, 0x01, 0xF0, 0x90, 0x12, + 0x93, 0xE0, 0xD3, 0x94, 0x00, 0x40, 0x06, 0x90, + 0xF1, 0x0A, 0x74, 0x01, 0xF0, 0xC2, 0x0F, 0xC2, + 0x11, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x24, 0x81, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0xFD, 0x90, 0x13, 0x2C, 0xE0, 0xFA, 0xA3, 0xE0, + 0xFB, 0xD3, 0x9D, 0xEA, 0x94, 0x00, 0x40, 0x13, + 0xD2, 0x0F, 0xD2, 0x11, 0x74, 0x77, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0x74, 0x01, + 0xF0, 0x80, 0x04, 0xC2, 0x0F, 0xC2, 0x11, 0x90, + 0x12, 0xE2, 0xE0, 0x24, 0x77, 0xF5, 0x82, 0xE4, + 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xB4, 0x01, 0x13, + 0xD3, 0xEB, 0x94, 0x01, 0xEA, 0x94, 0x00, 0x40, + 0x06, 0xD2, 0x0F, 0xD2, 0x11, 0x80, 0x04, 0xC2, + 0x0F, 0xC2, 0x11, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0x64, 0x01, 0x60, 0x03, 0x02, 0x16, + 0xAD, 0x90, 0x12, 0xE1, 0xE0, 0xFE, 0x24, 0x0A, + 0xF5, 0x82, 0xE4, 0x34, 0x13, 0xF5, 0x83, 0xE0, + 0xFD, 0x74, 0xCA, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0x50, 0x4D, + 0xC2, 0x0D, 0x90, 0x12, 0xE2, 0xE0, 0x24, 0x3C, + 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, + 0xFD, 0xEE, 0x25, 0xE0, 0x24, 0x14, 0xF5, 0x82, + 0xE4, 0x34, 0x13, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, + 0xE0, 0xD3, 0x9D, 0x74, 0x80, 0xF8, 0xEA, 0x64, + 0x80, 0x98, 0x50, 0x10, 0x74, 0xCA, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0x04, + 0xF0, 0x02, 0x16, 0xAF, 0x90, 0x12, 0xE2, 0xE0, + 0x24, 0xCA, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE4, 0xF0, 0x80, 0x72, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x74, 0xCA, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, + 0xF0, 0xD2, 0x0D, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x94, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x12, + 0xE2, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x96, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x80, 0x02, 0xD2, 0x0D, 0x30, + 0x01, 0x57, 0x90, 0x12, 0xE1, 0xE0, 0xFF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0x90, 0x12, 0xE2, 0xE0, 0xFE, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, + 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x02, 0x17, + 0x8E, 0x20, 0x0F, 0x03, 0x02, 0x17, 0x8E, 0x30, + 0x11, 0x7C, 0x30, 0x0D, 0x79, 0x90, 0x13, 0x2C, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xD3, 0x94, 0x78, + 0xEE, 0x94, 0x00, 0x40, 0x06, 0x90, 0x12, 0x92, + 0xE0, 0x04, 0xF0, 0xD3, 0xEF, 0x94, 0x72, 0xEE, + 0x94, 0x01, 0x40, 0x06, 0x90, 0x12, 0x93, 0xE0, + 0x04, 0xF0, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, 0xE2, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, + 0xE1, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xE2, + 0xE0, 0xFE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, + 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, + 0xED, 0xF0, 0x90, 0x12, 0xE1, 0xE0, 0xFF, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, + 0xE0, 0xFE, 0x90, 0x12, 0xE2, 0xE0, 0xFD, 0x24, + 0x14, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, + 0xEE, 0xF0, 0x74, 0x28, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x8A, 0xF5, 0x83, 0xE0, 0xFF, 0x74, 0x3C, + 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, + 0xEF, 0xF0, 0x74, 0xE5, 0x2D, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0x74, 0x02, 0xF0, 0x90, + 0x12, 0xE1, 0xE0, 0x24, 0xA0, 0xF5, 0x82, 0xE4, + 0x34, 0x37, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x12, + 0xDF, 0xE0, 0x04, 0xF0, 0x90, 0x88, 0xC0, 0xE0, + 0x14, 0xF0, 0x90, 0x88, 0xC1, 0xE0, 0x14, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x10, + 0x3C, 0x90, 0x12, 0xDF, 0xE0, 0xC3, 0x95, 0x0D, + 0x40, 0x03, 0x02, 0x18, 0xE0, 0x90, 0x88, 0xC0, + 0xE0, 0x94, 0x00, 0x40, 0x7B, 0xE4, 0x90, 0x12, + 0xDB, 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0xFF, 0xC3, + 0x95, 0x0D, 0x50, 0x6C, 0x74, 0xE5, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x64, + 0x04, 0x70, 0x55, 0x90, 0x12, 0xDF, 0xE0, 0xC3, + 0x95, 0x0D, 0x50, 0x4C, 0x90, 0x12, 0xDB, 0xE0, + 0x24, 0xE5, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0x74, 0x03, 0xF0, 0x74, 0x77, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x88, 0xC0, 0xE0, 0x14, 0xF0, 0x90, 0x12, + 0xDF, 0xE0, 0x04, 0xF0, 0x74, 0xD1, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, + 0x74, 0xCA, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE4, 0xF0, 0x74, 0xC0, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x12, 0xDB, 0xE0, 0x04, 0xF0, 0x80, 0x8A, + 0x90, 0x12, 0xDF, 0xE0, 0xC3, 0x95, 0x0D, 0x40, + 0x03, 0x02, 0x26, 0x16, 0x90, 0x88, 0xC1, 0xE0, + 0x94, 0x00, 0x50, 0x03, 0x02, 0x26, 0x16, 0xE4, + 0x90, 0x12, 0xDC, 0xF0, 0x90, 0x88, 0xB0, 0xE0, + 0xFF, 0x90, 0x12, 0xDC, 0xE0, 0xFE, 0xC3, 0x9F, + 0x40, 0x03, 0x02, 0x26, 0x16, 0x74, 0xA0, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, 0x83, 0xE0, + 0x70, 0x03, 0x02, 0x1B, 0x17, 0xE4, 0x90, 0x12, + 0xDB, 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0xFF, 0xC3, + 0x95, 0x0D, 0x40, 0x03, 0x02, 0x1B, 0x17, 0x74, + 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0xE0, 0x60, 0x03, 0x02, 0x1B, 0x0E, 0x90, + 0x12, 0xDF, 0xE0, 0xC3, 0x95, 0x0D, 0x40, 0x03, + 0x02, 0x1B, 0x0E, 0x90, 0x12, 0xDC, 0xE0, 0xFF, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0x90, 0x12, 0xDB, 0xE0, 0xFE, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, + 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, + 0x12, 0xDC, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, + 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, + 0x12, 0xDC, 0xE0, 0xFF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, + 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, + 0x12, 0xDC, 0xE0, 0xFF, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, 0xFE, 0x90, + 0x12, 0xDB, 0xE0, 0xFD, 0x24, 0x14, 0xF5, 0x82, + 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xEE, 0xF0, 0x74, + 0x28, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, + 0x83, 0xE0, 0xFF, 0x74, 0x3C, 0x2D, 0xF5, 0x82, + 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xEF, 0xF0, 0x74, + 0xC0, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0x74, 0x01, 0xF0, 0x90, 0x12, 0xDC, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xDB, 0xE0, 0xFE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x94, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, + 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x96, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, + 0x74, 0xE5, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x90, 0x12, 0xDC, + 0xE0, 0x24, 0xA0, 0xF5, 0x82, 0xE4, 0x34, 0x37, + 0xF5, 0x83, 0xE4, 0xF0, 0x74, 0xD1, 0x2E, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x88, 0xC1, 0xE0, 0x14, 0xF0, 0x90, 0x12, + 0xDF, 0xE0, 0x04, 0xF0, 0x80, 0x09, 0x90, 0x12, + 0xDB, 0xE0, 0x04, 0xF0, 0x02, 0x19, 0x22, 0x90, + 0x12, 0xDC, 0xE0, 0x04, 0xF0, 0x02, 0x18, 0xFC, + 0xE4, 0x90, 0x88, 0xC0, 0xF0, 0xF5, 0xDC, 0xF5, + 0xDD, 0xF5, 0xDE, 0x90, 0x12, 0xDB, 0xF0, 0x90, + 0x12, 0xDB, 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x50, + 0x5A, 0x74, 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x88, 0xF5, 0x83, 0xE0, 0x64, 0x01, 0x60, 0x20, + 0x90, 0x12, 0xDB, 0xE0, 0x24, 0xE5, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x64, 0x02, + 0x60, 0x0E, 0x74, 0xE5, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0xE0, 0xB4, 0x04, 0x14, + 0x90, 0x88, 0xC0, 0xE0, 0x04, 0xF0, 0x90, 0x12, + 0xDB, 0xE0, 0xFF, 0x7B, 0x01, 0xE4, 0xFD, 0x12, + 0x4C, 0x38, 0x80, 0x0F, 0x90, 0x12, 0xDB, 0xE0, + 0x24, 0xE5, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0xE4, 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0x04, + 0xF0, 0x80, 0x9C, 0xE4, 0xF5, 0xD9, 0xF5, 0xDA, + 0xF5, 0xDB, 0x90, 0x12, 0xDC, 0xF0, 0x90, 0x88, + 0xC1, 0xE0, 0xFE, 0x90, 0x12, 0xDC, 0xE0, 0xFF, + 0xC3, 0x9E, 0x50, 0x0E, 0xE4, 0xFB, 0xFD, 0x12, + 0x4C, 0x38, 0x90, 0x12, 0xDC, 0xE0, 0x04, 0xF0, + 0x80, 0xE4, 0x90, 0x88, 0xC0, 0xE0, 0xFF, 0x90, + 0x88, 0xC1, 0xE0, 0xC3, 0x9F, 0x50, 0x07, 0xE0, + 0x90, 0x12, 0xE3, 0xF0, 0x80, 0x08, 0x90, 0x88, + 0xC0, 0xE0, 0x90, 0x12, 0xE3, 0xF0, 0xE4, 0x90, + 0x12, 0xDD, 0xF0, 0x90, 0x12, 0xE3, 0xE0, 0xFF, + 0x90, 0x12, 0xDD, 0xE0, 0xC3, 0x9F, 0x40, 0x03, + 0x02, 0x23, 0x57, 0xC2, 0x0F, 0xC2, 0x11, 0xD2, + 0xB4, 0x20, 0xB4, 0x06, 0x30, 0x0E, 0x03, 0x20, + 0xDD, 0x05, 0x75, 0x9E, 0x55, 0x80, 0xF2, 0xC2, + 0xDD, 0xC2, 0x0E, 0xAF, 0xE2, 0xEF, 0xFE, 0xAD, + 0xE3, 0x7C, 0x00, 0xE4, 0x2D, 0xFF, 0xEC, 0x3E, + 0xAD, 0x07, 0xFC, 0xC3, 0xED, 0x94, 0x20, 0xEC, + 0x94, 0x4E, 0x40, 0x03, 0x02, 0x23, 0x57, 0xED, + 0x94, 0xC8, 0xEC, 0x94, 0x00, 0x40, 0x57, 0xAF, + 0xDF, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xAB, 0xE1, 0xEB, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xAF, 0xDF, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xAB, 0xE1, + 0xEB, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x02, 0x1E, 0xFC, 0xD3, 0xED, + 0x94, 0x64, 0xEC, 0x94, 0x00, 0x50, 0x03, 0x02, + 0x1D, 0x73, 0xAF, 0xDF, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xA3, 0xE0, 0x25, 0xE0, 0xFF, 0x05, + 0x82, 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, + 0xE0, 0x33, 0xFE, 0xAB, 0xDF, 0xEB, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0x2F, + 0xFF, 0xEA, 0x3E, 0xFE, 0xAB, 0xE1, 0xEB, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFA, 0xA3, 0xE0, + 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, 0xEF, 0x78, 0x02, + 0xCE, 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0xFF, + 0xAB, 0xE1, 0xEB, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, 0xDF, 0xEF, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xA3, 0xE0, 0x25, + 0xE0, 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, 0x15, + 0x83, 0x15, 0x82, 0xE0, 0x33, 0xFE, 0xAB, 0xDF, + 0xEB, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFA, + 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, 0xAB, + 0xE1, 0xEB, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFA, 0xA3, 0xE0, 0x2F, 0xFF, 0xEA, 0x3E, 0xFE, + 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, 0x13, + 0xD8, 0xF9, 0xFF, 0xAB, 0xE1, 0xEB, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x02, 0x1E, 0xFC, 0xAE, 0x04, 0xAF, 0x05, 0xD3, + 0xED, 0x94, 0x32, 0xEC, 0x94, 0x00, 0x50, 0x03, + 0x02, 0x1E, 0x16, 0xAF, 0xE1, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xAD, 0xDF, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, 0xEC, 0x3E, + 0xC3, 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0xAD, 0xE1, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0xAF, 0xE1, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xAD, 0xDF, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, 0xEC, 0x3E, + 0xC3, 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0xAD, 0xE1, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x02, 0x1E, 0xFC, 0xAF, 0xE1, + 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xA3, 0xE0, + 0x25, 0xE0, 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, + 0x15, 0x83, 0x15, 0x82, 0xE0, 0x33, 0xFE, 0xAD, + 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, 0xEC, 0x3E, 0xFE, + 0xAD, 0xDF, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, 0xEC, 0x3E, + 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, + 0x13, 0xD8, 0xF9, 0xFF, 0xAD, 0xE1, 0xED, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xAF, 0xE1, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xA3, 0xE0, 0x25, 0xE0, 0xFF, 0x05, 0x82, + 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, + 0x33, 0xFE, 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, 0xFF, + 0xEC, 0x3E, 0xFE, 0xAD, 0xDF, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0x2F, + 0xFF, 0xEC, 0x3E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, + 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0xAD, + 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, 0xE1, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, + 0xEC, 0x9E, 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x13, + 0x28, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, 0xE1, + 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0xAD, 0xE1, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, + 0x9F, 0xFF, 0xEC, 0x9E, 0xFE, 0x12, 0x78, 0xF1, + 0x90, 0x13, 0x2A, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x90, 0x13, 0x2A, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x13, 0x29, 0xE0, 0x2F, 0xFF, 0x90, 0x13, + 0x28, 0xE0, 0x3E, 0xFE, 0x90, 0x13, 0x2C, 0xF0, + 0xA3, 0xEF, 0xF0, 0xD3, 0x94, 0x0C, 0xEE, 0x94, + 0x00, 0x40, 0x4E, 0xD2, 0x0F, 0xD2, 0x11, 0xAF, + 0xE1, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0xD3, 0x94, 0x04, 0x40, + 0x10, 0xAF, 0xE1, 0x74, 0x81, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0x24, 0xFC, + 0xF0, 0xAF, 0xE1, 0x74, 0x81, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xC3, 0x94, + 0x01, 0x50, 0x0E, 0xAF, 0xE1, 0x74, 0x81, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, + 0xF0, 0x90, 0xF1, 0x0A, 0x74, 0x01, 0xF0, 0x80, + 0x65, 0xAF, 0xE1, 0x74, 0x81, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0x04, 0xF0, + 0xAF, 0xE1, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xD3, 0x94, 0x16, + 0x40, 0x17, 0xAF, 0xE1, 0x74, 0x81, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0x74, 0x16, + 0xF0, 0x90, 0xF1, 0x0A, 0x74, 0x02, 0xF0, 0x80, + 0x29, 0x90, 0x12, 0x92, 0xE0, 0xD3, 0x94, 0x00, + 0x50, 0x08, 0x90, 0x12, 0x60, 0xE0, 0x94, 0x00, + 0x40, 0x09, 0x30, 0x04, 0x06, 0x90, 0xF1, 0x0A, + 0x74, 0x01, 0xF0, 0x90, 0x12, 0x93, 0xE0, 0xD3, + 0x94, 0x00, 0x40, 0x06, 0x90, 0xF1, 0x0A, 0x74, + 0x01, 0xF0, 0xC2, 0x0F, 0xC2, 0x11, 0xAF, 0xE1, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE0, 0xFF, 0x90, 0x13, 0x2C, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xD3, 0x9F, 0xEC, 0x94, + 0x00, 0x40, 0x15, 0xD2, 0x0F, 0xD2, 0x11, 0xAF, + 0xE1, 0x74, 0x77, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x80, 0x04, + 0xC2, 0x0F, 0xC2, 0x11, 0xAF, 0xE1, 0x74, 0x77, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, + 0xE0, 0xB4, 0x01, 0x13, 0xD3, 0xED, 0x94, 0x01, + 0xEC, 0x94, 0x00, 0x40, 0x06, 0xD2, 0x0F, 0xD2, + 0x11, 0x80, 0x04, 0xC2, 0x0F, 0xC2, 0x11, 0xAF, + 0xE1, 0x74, 0xC0, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x64, 0x01, 0x60, 0x03, + 0x02, 0x21, 0x95, 0xAF, 0xDF, 0x74, 0x0A, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x13, 0xF5, 0x83, 0xE0, + 0xFF, 0xAE, 0xE1, 0x74, 0xCA, 0x2E, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xC3, 0x9F, + 0x50, 0x4F, 0xC2, 0x0D, 0xAF, 0xE1, 0x74, 0x3C, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, + 0xE0, 0xFF, 0xAD, 0xDF, 0xED, 0x25, 0xE0, 0x24, + 0x14, 0xF5, 0x82, 0xE4, 0x34, 0x13, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xD3, 0x9F, 0x74, 0x80, + 0xF8, 0xEC, 0x64, 0x80, 0x98, 0x50, 0x12, 0xAF, + 0xE1, 0x74, 0xCA, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x04, 0xF0, 0x02, 0x21, + 0x97, 0xAF, 0xE1, 0x74, 0xCA, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x80, + 0x76, 0xAF, 0xE1, 0x74, 0xC0, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0xAF, + 0xE1, 0x74, 0xCA, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0xAF, 0xE1, 0xEF, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x94, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, + 0xE1, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x96, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xAD, 0xE1, 0xED, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xD2, 0x0D, 0x80, 0x02, 0xD2, 0x0D, 0x30, + 0x01, 0x57, 0xAF, 0xDF, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xAD, + 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, 0xDF, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x02, 0x22, + 0x81, 0x20, 0x0F, 0x03, 0x02, 0x22, 0x81, 0x20, + 0x11, 0x03, 0x02, 0x22, 0x81, 0x20, 0x0D, 0x03, + 0x02, 0x22, 0x81, 0xD3, 0x90, 0x13, 0x2D, 0xE0, + 0x94, 0x78, 0x90, 0x13, 0x2C, 0xE0, 0x94, 0x00, + 0x40, 0x06, 0x90, 0x12, 0x92, 0xE0, 0x04, 0xF0, + 0xD3, 0x90, 0x13, 0x2D, 0xE0, 0x94, 0x72, 0x90, + 0x13, 0x2C, 0xE0, 0x94, 0x01, 0x40, 0x06, 0x90, + 0x12, 0x93, 0xE0, 0x04, 0xF0, 0xAF, 0xE1, 0xEF, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, + 0xE1, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xAD, 0xE1, 0xED, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xAF, 0xDF, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xAD, 0xE1, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0xAF, 0xDF, 0xEF, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0xF2, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xAD, 0xE1, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x52, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xAF, 0xDF, 0x74, + 0x00, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, + 0x83, 0xE0, 0xFF, 0xAE, 0xE1, 0x74, 0x14, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xEF, + 0xF0, 0xAF, 0xDF, 0x74, 0x28, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, 0xFF, 0xAE, + 0xE1, 0x74, 0x3C, 0x2E, 0xF5, 0x82, 0xE4, 0x34, + 0x8A, 0xF5, 0x83, 0xEF, 0xF0, 0xAF, 0xE1, 0x74, + 0xE5, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0x74, 0x02, 0xF0, 0x90, 0x12, 0xDF, 0xE0, + 0x04, 0xF0, 0x90, 0x88, 0xC0, 0xE0, 0x14, 0xF0, + 0x90, 0x88, 0xC1, 0xE0, 0x14, 0xF0, 0xAF, 0xE1, + 0x74, 0xD1, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0xE4, 0xF0, 0x7B, 0x01, 0x7D, 0x01, + 0xAF, 0xE1, 0x12, 0x4C, 0x38, 0xE4, 0xFB, 0x7D, + 0x01, 0xAF, 0xDF, 0x12, 0x4C, 0x38, 0x90, 0x12, + 0xDD, 0xE0, 0x04, 0xF0, 0x02, 0x1B, 0xDB, 0x90, + 0x12, 0xDF, 0xE0, 0xC3, 0x95, 0x0D, 0x40, 0x03, + 0x02, 0x23, 0xE4, 0x90, 0x88, 0xC0, 0xE0, 0x94, + 0x00, 0x40, 0x79, 0xE4, 0x90, 0x12, 0xDB, 0xF0, + 0x90, 0x12, 0xDB, 0xE0, 0xFF, 0xC3, 0x95, 0x0D, + 0x50, 0x6A, 0x7B, 0x01, 0x7D, 0x02, 0x12, 0x4C, + 0x38, 0x90, 0x12, 0xDE, 0xEF, 0xF0, 0x60, 0x54, + 0xA3, 0xE0, 0xC3, 0x95, 0x0D, 0x50, 0x4D, 0x90, + 0x12, 0xDB, 0xE0, 0xFF, 0x24, 0xCA, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x74, + 0xC0, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE4, 0xF0, 0x74, 0xE5, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0x74, 0x03, 0xF0, + 0x74, 0x77, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x12, + 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x88, 0xC0, 0xE0, + 0x14, 0xF0, 0x90, 0x12, 0xDF, 0xE0, 0x04, 0xF0, + 0x74, 0xD1, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x12, 0xDB, 0xE0, + 0x04, 0xF0, 0x80, 0x8C, 0x90, 0x12, 0xDF, 0xE0, + 0xC3, 0x95, 0x0D, 0x40, 0x03, 0x02, 0x26, 0x16, + 0x90, 0x88, 0xC1, 0xE0, 0x94, 0x00, 0x50, 0x03, + 0x02, 0x26, 0x16, 0xE4, 0x90, 0x12, 0xDC, 0xF0, + 0x90, 0x88, 0xB0, 0xE0, 0xFE, 0x90, 0x12, 0xDC, + 0xE0, 0xFF, 0xC3, 0x9E, 0x40, 0x03, 0x02, 0x26, + 0x16, 0xE4, 0xFB, 0x7D, 0x02, 0x12, 0x4C, 0x38, + 0x90, 0x12, 0xDE, 0xEF, 0xF0, 0x70, 0x03, 0x02, + 0x26, 0x0D, 0xE4, 0x90, 0x12, 0xDB, 0xF0, 0x90, + 0x12, 0xDB, 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x40, + 0x03, 0x02, 0x26, 0x0D, 0x74, 0xE5, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x60, + 0x03, 0x02, 0x26, 0x04, 0x90, 0x12, 0xDF, 0xE0, + 0xC3, 0x95, 0x0D, 0x40, 0x03, 0x02, 0x26, 0x04, + 0x90, 0x12, 0xDC, 0xE0, 0xFF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x90, + 0x12, 0xDB, 0xE0, 0xFE, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x50, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, + 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, 0xDC, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x02, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, 0xDC, 0xE0, + 0xFF, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xE0, 0xFE, 0x90, 0x12, 0xDB, 0xE0, + 0xFD, 0x24, 0x14, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xEE, 0xF0, 0x74, 0x28, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, 0xFF, + 0x74, 0x3C, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x12, 0xDC, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xDB, 0xE0, 0xFE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, + 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, 0xF5, 0x83, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, + 0x74, 0xE5, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x74, 0xC0, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0x74, + 0x01, 0xF0, 0x90, 0x12, 0xDC, 0xE0, 0xFF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0xF2, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEE, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x94, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEE, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x96, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xEC, 0xF0, 0xA3, + 0xED, 0xF0, 0x74, 0xD1, 0x2E, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x88, + 0xC1, 0xE0, 0x14, 0xF0, 0x90, 0x12, 0xDF, 0xE0, + 0x04, 0xF0, 0x80, 0x09, 0x90, 0x12, 0xDB, 0xE0, + 0x04, 0xF0, 0x02, 0x24, 0x27, 0x90, 0x12, 0xDC, + 0xE0, 0x04, 0xF0, 0x02, 0x24, 0x00, 0x22, 0xE4, + 0xF5, 0x99, 0x75, 0x96, 0x03, 0x75, 0x9E, 0x55, + 0xF5, 0xA1, 0xF5, 0xA1, 0xF5, 0xA1, 0xC2, 0x09, + 0xC2, 0x0A, 0xC2, 0x0E, 0xC2, 0x15, 0xC2, 0x05, + 0xC2, 0x06, 0x90, 0x12, 0x81, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0x90, 0x12, 0x77, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x12, + 0xC0, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xD2, 0xB1, 0xC2, 0xB6, + 0xC2, 0xB7, 0x75, 0xA0, 0x02, 0xF5, 0xAE, 0x90, + 0xF0, 0xC4, 0xF0, 0x90, 0x8F, 0xF0, 0xF0, 0xFF, + 0xFE, 0xAD, 0x07, 0x74, 0xE5, 0x2D, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, 0x74, + 0xA0, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x37, 0xF5, + 0x83, 0xE4, 0xF0, 0x0F, 0xBF, 0x00, 0x01, 0x0E, + 0xEF, 0x64, 0x14, 0x4E, 0x70, 0xDB, 0xE4, 0x90, + 0x88, 0xC0, 0xF0, 0x90, 0x88, 0xC1, 0xF0, 0xF5, + 0xDC, 0xF5, 0xDD, 0xF5, 0xDE, 0xF5, 0xD9, 0xF5, + 0xDA, 0xF5, 0xDB, 0x90, 0x88, 0xC2, 0xF0, 0x90, + 0x88, 0xC6, 0xF0, 0x90, 0x88, 0xCD, 0xF0, 0xC2, + 0x0C, 0xC2, 0x0B, 0xC2, 0x14, 0x75, 0x8A, 0x8F, + 0xF5, 0x8B, 0x90, 0x8F, 0xFF, 0xF0, 0xC2, 0x03, + 0xC2, 0x16, 0x90, 0x28, 0x11, 0x93, 0xF5, 0x08, + 0x90, 0x28, 0x10, 0xE4, 0x93, 0xFD, 0xF5, 0x0D, + 0x90, 0x8B, 0x7C, 0xED, 0xF0, 0x90, 0x28, 0x12, + 0xE4, 0x93, 0x90, 0x8B, 0x7D, 0xF0, 0x90, 0x28, + 0x13, 0xE4, 0x93, 0x90, 0x8B, 0x7E, 0xF0, 0x90, + 0x28, 0x0B, 0xE4, 0x93, 0xF5, 0x0B, 0x90, 0x28, + 0x0C, 0xE4, 0x93, 0xF5, 0x0C, 0x90, 0x8B, 0x78, + 0x74, 0x05, 0xF0, 0xA3, 0xE4, 0xF0, 0x90, 0x8B, + 0x7A, 0x74, 0x03, 0xF0, 0xA3, 0x74, 0x20, 0xF0, + 0xE4, 0x90, 0x3F, 0xFE, 0xF0, 0xC2, 0x10, 0x90, + 0x12, 0xBC, 0xF0, 0x90, 0x12, 0x58, 0xF0, 0x90, + 0x12, 0x59, 0xF0, 0x90, 0x12, 0x63, 0xF0, 0xA3, + 0x74, 0x03, 0xF0, 0xE4, 0x90, 0x8F, 0xFE, 0xF0, + 0xFE, 0xFF, 0x75, 0x9E, 0x55, 0xAD, 0x07, 0x74, + 0x00, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xE4, 0xF0, 0x74, 0x78, 0x2D, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xE4, 0xF0, 0x0F, + 0xBF, 0x00, 0x01, 0x0E, 0xEF, 0x64, 0x3C, 0x4E, + 0x70, 0xD8, 0xE4, 0xFE, 0xFF, 0xAD, 0x07, 0x74, + 0xCA, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, + 0x83, 0xE4, 0xF0, 0x74, 0x65, 0x2D, 0xF5, 0x82, + 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE4, 0xF0, 0x0F, + 0xBF, 0x00, 0x01, 0x0E, 0xEF, 0x64, 0x0A, 0x4E, + 0x70, 0xDB, 0xE4, 0x90, 0x12, 0x71, 0xF0, 0xA3, + 0xF0, 0x90, 0x12, 0xBD, 0xF0, 0xA3, 0xF0, 0x90, + 0x12, 0xBF, 0xF0, 0x90, 0x3F, 0xFD, 0x04, 0xF0, + 0x22, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0xA3, 0xF0, + 0x90, 0x8F, 0xFE, 0x74, 0xAA, 0xF0, 0x90, 0x8F, + 0xFD, 0xE0, 0x64, 0xBB, 0x60, 0x1A, 0x90, 0x12, + 0xDB, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x75, 0x9E, 0x55, 0x7F, + 0xFA, 0x7E, 0x00, 0x12, 0x67, 0xEE, 0x80, 0xDE, + 0xE4, 0x90, 0x8F, 0xFD, 0xF0, 0x90, 0x8F, 0xFE, + 0xF0, 0xD2, 0xD8, 0xA2, 0xD9, 0x33, 0x90, 0x8E, + 0x01, 0xF0, 0x90, 0xF0, 0xC4, 0x74, 0x01, 0xF0, + 0x22, 0xD2, 0xD8, 0x22, 0xD2, 0x0E, 0x32, 0x32, + 0x1C, 0x1C, 0x20, 0x1E, 0x28, 0x03, 0xE8, 0x1E, + 0xC8, 0x14, 0x01, 0x40, 0x40, 0x20, 0x20, 0x02, + 0x0A, 0x0A, 0x01, 0x05, 0xE4, 0x90, 0x12, 0xE8, + 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0xA3, 0xF0, 0x90, 0xF1, 0x03, 0xE0, 0xD3, + 0x94, 0x50, 0x40, 0x0F, 0xE0, 0x90, 0xF2, 0xA5, + 0xF0, 0x90, 0xF1, 0x03, 0xE0, 0x90, 0xF2, 0xA4, + 0xF0, 0x80, 0x0A, 0x90, 0xF2, 0xA5, 0x74, 0xFA, + 0xF0, 0x90, 0xF2, 0xA4, 0xF0, 0x90, 0xF1, 0x03, + 0xE0, 0x90, 0xF2, 0xB1, 0xF0, 0xD2, 0xB6, 0xD2, + 0xB7, 0xD2, 0xB2, 0x20, 0xB2, 0x06, 0x30, 0x0E, + 0x03, 0x20, 0xDC, 0x05, 0x75, 0x9E, 0x55, 0x80, + 0xF2, 0xC2, 0xDC, 0xC2, 0x0E, 0x90, 0xF2, 0xB0, + 0xE0, 0x64, 0x01, 0x70, 0x35, 0x90, 0x12, 0xFA, + 0x74, 0x16, 0xF0, 0x90, 0x12, 0x92, 0xE0, 0xD3, + 0x94, 0x00, 0x50, 0x08, 0x90, 0x12, 0x60, 0xE0, + 0x94, 0x00, 0x40, 0x09, 0x30, 0x04, 0x06, 0x90, + 0x12, 0xFA, 0x74, 0x12, 0xF0, 0x90, 0x12, 0x93, + 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x03, 0x02, 0x29, + 0xC6, 0x90, 0x12, 0xFA, 0x74, 0x10, 0xF0, 0x02, + 0x29, 0xC6, 0x90, 0xF2, 0xB0, 0xE0, 0x64, 0x02, + 0x70, 0x35, 0x90, 0x12, 0xFA, 0x74, 0x16, 0xF0, + 0x90, 0x12, 0x92, 0xE0, 0xD3, 0x94, 0x00, 0x50, + 0x08, 0x90, 0x12, 0x60, 0xE0, 0x94, 0x00, 0x40, + 0x09, 0x30, 0x04, 0x06, 0x90, 0x12, 0xFA, 0x74, + 0x12, 0xF0, 0x90, 0x12, 0x93, 0xE0, 0xD3, 0x94, + 0x00, 0x50, 0x03, 0x02, 0x29, 0xC6, 0x90, 0x12, + 0xFA, 0x74, 0x10, 0xF0, 0x02, 0x29, 0xC6, 0x90, + 0xF2, 0xB0, 0xE0, 0x64, 0x03, 0x70, 0x35, 0x90, + 0x12, 0xFA, 0x74, 0x16, 0xF0, 0x90, 0x12, 0x92, + 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x08, 0x90, 0x12, + 0x60, 0xE0, 0x94, 0x00, 0x40, 0x09, 0x30, 0x04, + 0x06, 0x90, 0x12, 0xFA, 0x74, 0x12, 0xF0, 0x90, + 0x12, 0x93, 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x03, + 0x02, 0x29, 0xC6, 0x90, 0x12, 0xFA, 0x74, 0x10, + 0xF0, 0x02, 0x29, 0xC6, 0x90, 0xF2, 0xB0, 0xE0, + 0x64, 0x04, 0x70, 0x31, 0x90, 0x12, 0xFA, 0x74, + 0x18, 0xF0, 0x90, 0x12, 0x92, 0xE0, 0xD3, 0x94, + 0x00, 0x50, 0x08, 0x90, 0x12, 0x60, 0xE0, 0x94, + 0x00, 0x40, 0x09, 0x30, 0x04, 0x06, 0x90, 0x12, + 0xFA, 0x74, 0x16, 0xF0, 0x90, 0x12, 0x93, 0xE0, + 0xD3, 0x94, 0x00, 0x40, 0x79, 0x90, 0x12, 0xFA, + 0x74, 0x12, 0xF0, 0x80, 0x71, 0x90, 0xF2, 0xB0, + 0xE0, 0x64, 0x05, 0x70, 0x31, 0x90, 0x12, 0xFA, + 0x74, 0x19, 0xF0, 0x90, 0x12, 0x92, 0xE0, 0xD3, + 0x94, 0x00, 0x50, 0x08, 0x90, 0x12, 0x60, 0xE0, + 0x94, 0x00, 0x40, 0x09, 0x30, 0x04, 0x06, 0x90, + 0x12, 0xFA, 0x74, 0x17, 0xF0, 0x90, 0x12, 0x93, + 0xE0, 0xD3, 0x94, 0x00, 0x40, 0x40, 0x90, 0x12, + 0xFA, 0x74, 0x12, 0xF0, 0x80, 0x38, 0x90, 0xF2, + 0xB0, 0xE0, 0xD3, 0x94, 0x05, 0x40, 0x2F, 0x90, + 0x12, 0xFA, 0x74, 0x19, 0xF0, 0x90, 0x12, 0x92, + 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x08, 0x90, 0x12, + 0x60, 0xE0, 0x94, 0x00, 0x40, 0x09, 0x30, 0x04, + 0x06, 0x90, 0x12, 0xFA, 0x74, 0x17, 0xF0, 0x90, + 0x12, 0x93, 0xE0, 0xD3, 0x94, 0x00, 0x40, 0x06, + 0x90, 0x12, 0xFA, 0x74, 0x12, 0xF0, 0x90, 0xF2, + 0xB0, 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x03, 0x02, + 0x35, 0x7F, 0xE4, 0x90, 0x12, 0xDA, 0xF0, 0xA3, + 0xF0, 0x90, 0xF2, 0xB0, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xC3, 0x9F, + 0xEC, 0x94, 0x00, 0x40, 0x03, 0x02, 0x35, 0x7F, + 0x30, 0xD9, 0x03, 0x02, 0x2A, 0x95, 0xED, 0x25, + 0xE0, 0xFD, 0xEC, 0x33, 0xFC, 0x74, 0x81, 0x2D, + 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, 0x83, 0xE0, + 0x25, 0xE0, 0x24, 0x29, 0xF5, 0x82, 0xE4, 0x34, + 0x80, 0xF5, 0x83, 0xE0, 0xFE, 0x74, 0x81, 0x2D, + 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, 0x83, 0xE0, + 0x25, 0xE0, 0x24, 0x28, 0xF5, 0x82, 0xE4, 0x34, + 0x80, 0xF5, 0x83, 0xE0, 0x7C, 0x00, 0x24, 0x00, + 0xFF, 0xEC, 0x3E, 0xFE, 0x7D, 0x14, 0x12, 0x59, + 0x93, 0x90, 0x12, 0xF4, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFD, + 0x90, 0x12, 0xDA, 0xE0, 0x33, 0xFC, 0x74, 0x80, + 0x2D, 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, 0x83, + 0xE0, 0x25, 0xE0, 0x24, 0x01, 0xF5, 0x82, 0xE4, + 0x34, 0x80, 0xF5, 0x83, 0xE0, 0xFE, 0x74, 0x80, + 0x2D, 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, 0x83, + 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x80, 0xF5, 0x83, 0xE0, 0x7C, 0x00, 0x24, + 0x00, 0xFF, 0xEC, 0x3E, 0xFE, 0x7D, 0x1E, 0x12, + 0x59, 0x93, 0x90, 0x12, 0xF6, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0x02, 0x2B, 0x37, 0x90, 0x12, 0xDB, + 0xE0, 0x25, 0xE0, 0xFD, 0x90, 0x12, 0xDA, 0xE0, + 0x33, 0xFC, 0x74, 0x81, 0x2D, 0xF5, 0x82, 0x74, + 0x81, 0x3C, 0xF5, 0x83, 0xE0, 0x25, 0xE0, 0x24, + 0xE9, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, + 0xE0, 0xFE, 0x74, 0x81, 0x2D, 0xF5, 0x82, 0x74, + 0x81, 0x3C, 0xF5, 0x83, 0xE0, 0x25, 0xE0, 0x24, + 0xE8, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, + 0xE0, 0x7C, 0x00, 0x24, 0x00, 0xFF, 0xEC, 0x3E, + 0xFE, 0x7D, 0x14, 0x12, 0x59, 0x93, 0x90, 0x12, + 0xF4, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xDB, 0xE0, 0x25, 0xE0, 0xFD, 0x90, 0x12, 0xDA, + 0xE0, 0x33, 0xFC, 0x74, 0x80, 0x2D, 0xF5, 0x82, + 0x74, 0x81, 0x3C, 0xF5, 0x83, 0xE0, 0x25, 0xE0, + 0x24, 0xC1, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, + 0x83, 0xE0, 0xFE, 0x74, 0x80, 0x2D, 0xF5, 0x82, + 0x74, 0x81, 0x3C, 0xF5, 0x83, 0xE0, 0x25, 0xE0, + 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, + 0x83, 0xE0, 0x7C, 0x00, 0x24, 0x00, 0xFF, 0xEC, + 0x3E, 0xFE, 0x7D, 0x1E, 0x12, 0x59, 0x93, 0x90, + 0x12, 0xF6, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, + 0x12, 0xF4, 0xE0, 0xC4, 0xF8, 0x54, 0xF0, 0xC8, + 0x68, 0xFE, 0xA3, 0xE0, 0xC4, 0x54, 0x0F, 0x48, + 0xFF, 0x7C, 0x00, 0x7D, 0x03, 0x12, 0x59, 0x81, + 0x90, 0x12, 0xF4, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0xA3, 0xE0, 0xC4, 0xF8, 0x54, 0xF0, 0xC8, 0x68, + 0xFE, 0xA3, 0xE0, 0xC4, 0x54, 0x0F, 0x48, 0xFF, + 0x12, 0x59, 0x81, 0x90, 0x12, 0xF6, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0xE4, 0x90, 0x12, 0xE2, 0xF0, + 0xA3, 0xF0, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, + 0xFD, 0x90, 0x12, 0xDA, 0xE0, 0x33, 0xFC, 0x74, + 0x81, 0x2D, 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, + 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0xFF, 0x74, + 0x80, 0x2D, 0xF5, 0x82, 0x74, 0x81, 0x3C, 0xF5, + 0x83, 0xE0, 0x7C, 0x00, 0x2F, 0xFF, 0xEC, 0x35, + 0xF0, 0xFE, 0xEF, 0x25, 0xE0, 0xFF, 0xEE, 0x33, + 0xFE, 0xA2, 0xD9, 0xE4, 0x33, 0x2F, 0xFF, 0xEC, + 0x3E, 0x90, 0x12, 0xF0, 0xF0, 0xA3, 0xEF, 0xF0, + 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, + 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x81, 0x2F, + 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, + 0x60, 0x03, 0x02, 0x2C, 0x7C, 0x90, 0x12, 0xF0, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x24, 0x00, 0xF5, + 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, + 0x74, 0x50, 0x2F, 0xF5, 0x82, 0x74, 0x60, 0x3E, + 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x9C, + 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, + 0x24, 0x0A, 0xFD, 0xE4, 0x33, 0xFC, 0xC3, 0xEF, + 0x9D, 0xEC, 0x64, 0x80, 0xF8, 0xEE, 0x64, 0x80, + 0x98, 0x50, 0x0E, 0x90, 0x12, 0xE3, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, + 0xF0, 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x24, 0x28, 0xF5, 0x82, 0x74, 0x60, 0x3E, + 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0x00, 0x2F, 0xF5, + 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, + 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, + 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0x24, 0x0A, 0xFD, + 0xE4, 0x33, 0xFC, 0xC3, 0xEF, 0x9D, 0xEC, 0x64, + 0x80, 0xF8, 0xEE, 0x64, 0x80, 0x98, 0x40, 0x03, + 0x02, 0x2E, 0xD9, 0x90, 0x12, 0xE3, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, + 0xF0, 0x02, 0x2E, 0xD9, 0x90, 0x12, 0xDB, 0xE0, + 0x25, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0x33, + 0xFE, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, + 0x3E, 0xF5, 0x83, 0xE0, 0x64, 0x1D, 0x60, 0x03, + 0x02, 0x2D, 0x3B, 0x90, 0x12, 0xF0, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x24, 0x00, 0xF5, 0x82, 0x74, + 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0xB0, + 0x2F, 0xF5, 0x82, 0x74, 0x5F, 0x3E, 0xF5, 0x83, + 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, + 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0x24, + 0x0A, 0xFD, 0xE4, 0x33, 0xFC, 0xC3, 0xEF, 0x9D, + 0xEC, 0x64, 0x80, 0xF8, 0xEE, 0x64, 0x80, 0x98, + 0x50, 0x0E, 0x90, 0x12, 0xE3, 0xE0, 0x04, 0xF0, + 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, 0xF0, + 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x24, 0xD8, 0xF5, 0x82, 0x74, 0x5F, 0x3E, 0xF5, + 0x83, 0xE0, 0xFD, 0x74, 0x00, 0x2F, 0xF5, 0x82, + 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, + 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, 0xF1, + 0x90, 0x12, 0xFA, 0xE0, 0x24, 0x0A, 0xFD, 0xE4, + 0x33, 0xFC, 0xC3, 0xEF, 0x9D, 0xEC, 0x64, 0x80, + 0xF8, 0xEE, 0x64, 0x80, 0x98, 0x40, 0x03, 0x02, + 0x2E, 0xD9, 0x90, 0x12, 0xE3, 0xE0, 0x04, 0xF0, + 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, 0xF0, + 0x02, 0x2E, 0xD9, 0x90, 0x12, 0xF0, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x24, 0xFF, 0xF5, 0x82, 0x74, + 0x5F, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0xD7, + 0x2F, 0xF5, 0x82, 0x74, 0x5F, 0x3E, 0xF5, 0x83, + 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, + 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0xFD, + 0xC3, 0xEF, 0x9D, 0x74, 0x80, 0xF8, 0x6E, 0x98, + 0x50, 0x0E, 0x90, 0x12, 0xE3, 0xE0, 0x04, 0xF0, + 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, 0xF0, + 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x24, 0x27, 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, + 0x83, 0xE0, 0xFD, 0x74, 0xFF, 0x2F, 0xF5, 0x82, + 0x74, 0x5F, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, + 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, 0xF1, + 0x90, 0x12, 0xFA, 0xE0, 0xFD, 0xC3, 0xEF, 0x9D, + 0x74, 0x80, 0xF8, 0x6E, 0x98, 0x50, 0x0E, 0x90, + 0x12, 0xE3, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, + 0x12, 0xE2, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xF0, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x24, 0x00, 0xF5, + 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, + 0x74, 0xD8, 0x2F, 0xF5, 0x82, 0x74, 0x5F, 0x3E, + 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, + 0x00, 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, + 0xE0, 0xFD, 0xC3, 0xEF, 0x9D, 0x74, 0x80, 0xF8, + 0x6E, 0x98, 0x50, 0x0E, 0x90, 0x12, 0xE3, 0xE0, + 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, + 0x04, 0xF0, 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x24, 0x28, 0xF5, 0x82, 0x74, 0x60, + 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0x00, 0x2F, + 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, + 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, + 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0xFD, 0xC3, + 0xEF, 0x9D, 0x74, 0x80, 0xF8, 0x6E, 0x98, 0x50, + 0x0E, 0x90, 0x12, 0xE3, 0xE0, 0x04, 0xF0, 0x70, + 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, 0xF0, 0x90, + 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x24, + 0x01, 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, + 0xE0, 0xFD, 0x74, 0xD9, 0x2F, 0xF5, 0x82, 0x74, + 0x5F, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0xFF, + 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, 0xF1, 0x90, + 0x12, 0xFA, 0xE0, 0xFD, 0xC3, 0xEF, 0x9D, 0x74, + 0x80, 0xF8, 0x6E, 0x98, 0x50, 0x0E, 0x90, 0x12, + 0xE3, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xE2, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xF0, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0x24, 0x29, 0xF5, 0x82, + 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, + 0x01, 0x2F, 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, + 0x83, 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, + 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, + 0xFD, 0xC3, 0xEF, 0x9D, 0x74, 0x80, 0xF8, 0x6E, + 0x98, 0x50, 0x0E, 0x90, 0x12, 0xE3, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE2, 0xE0, 0x04, + 0xF0, 0xE4, 0x90, 0x12, 0xE4, 0xF0, 0xA3, 0xF0, + 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x24, 0xD8, 0xF5, 0x82, 0x74, 0x5F, 0x3E, 0xF5, + 0x83, 0xE0, 0xFD, 0x74, 0xD7, 0x2F, 0xF5, 0x82, + 0x74, 0x5F, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, + 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, 0xF1, + 0x90, 0x12, 0xFA, 0xE0, 0xFD, 0xD3, 0xEF, 0x9D, + 0x74, 0x80, 0xF8, 0x6E, 0x98, 0x40, 0x0E, 0x90, + 0x12, 0xE5, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, + 0x12, 0xE4, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xF0, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x24, 0xD9, 0xF5, + 0x82, 0x74, 0x5F, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, + 0x74, 0xD8, 0x2F, 0xF5, 0x82, 0x74, 0x5F, 0x3E, + 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, + 0x00, 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, + 0xE0, 0xFD, 0xD3, 0xEF, 0x9D, 0x74, 0x80, 0xF8, + 0x6E, 0x98, 0x40, 0x0E, 0x90, 0x12, 0xE5, 0xE0, + 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE4, 0xE0, + 0x04, 0xF0, 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x24, 0x00, 0xF5, 0x82, 0x74, 0x60, + 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0xFF, 0x2F, + 0xF5, 0x82, 0x74, 0x5F, 0x3E, 0xF5, 0x83, 0xE0, + 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, + 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0xFD, 0xD3, + 0xEF, 0x9D, 0x74, 0x80, 0xF8, 0x6E, 0x98, 0x40, + 0x0E, 0x90, 0x12, 0xE5, 0xE0, 0x04, 0xF0, 0x70, + 0x06, 0x90, 0x12, 0xE4, 0xE0, 0x04, 0xF0, 0x90, + 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x24, + 0x01, 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, + 0xE0, 0xFD, 0x74, 0x00, 0x2F, 0xF5, 0x82, 0x74, + 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, 0x9D, 0xFF, + 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, 0xF1, 0x90, + 0x12, 0xFA, 0xE0, 0xFD, 0xD3, 0xEF, 0x9D, 0x74, + 0x80, 0xF8, 0x6E, 0x98, 0x40, 0x0E, 0x90, 0x12, + 0xE5, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xE4, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xF0, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0x24, 0x28, 0xF5, 0x82, + 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, + 0x27, 0x2F, 0xF5, 0x82, 0x74, 0x60, 0x3E, 0xF5, + 0x83, 0xE0, 0xC3, 0x9D, 0xFF, 0xE4, 0x94, 0x00, + 0xFE, 0x12, 0x78, 0xF1, 0x90, 0x12, 0xFA, 0xE0, + 0xFD, 0xD3, 0xEF, 0x9D, 0x74, 0x80, 0xF8, 0x6E, + 0x98, 0x40, 0x0E, 0x90, 0x12, 0xE5, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x12, 0xE4, 0xE0, 0x04, + 0xF0, 0x90, 0x12, 0xF0, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x24, 0x29, 0xF5, 0x82, 0x74, 0x60, 0x3E, + 0xF5, 0x83, 0xE0, 0xFD, 0x74, 0x28, 0x2F, 0xF5, + 0x82, 0x74, 0x60, 0x3E, 0xF5, 0x83, 0xE0, 0xC3, + 0x9D, 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x12, 0x78, + 0xF1, 0x90, 0x12, 0xFA, 0xE0, 0xFD, 0xD3, 0xEF, + 0x9D, 0x74, 0x80, 0xF8, 0x6E, 0x98, 0x40, 0x0E, + 0x90, 0x12, 0xE5, 0xE0, 0x04, 0xF0, 0x70, 0x06, + 0x90, 0x12, 0xE4, 0xE0, 0x04, 0xF0, 0x90, 0x12, + 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, 0x82, + 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, 0x74, + 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, + 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, 0x00, + 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, 0x83, + 0xE5, 0x82, 0x2D, 0xF5, 0x82, 0xE4, 0x35, 0x83, + 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0xF1, 0x03, 0xE0, + 0xFF, 0x90, 0x12, 0xF5, 0xE0, 0x2F, 0xFF, 0x90, + 0x12, 0xF4, 0xE0, 0x34, 0x00, 0xFE, 0x90, 0x12, + 0xF0, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x24, 0x00, + 0xF5, 0x82, 0x74, 0x60, 0x3C, 0xF5, 0x83, 0xE0, + 0xD3, 0x9F, 0xE4, 0x9E, 0x40, 0x62, 0x90, 0xF1, + 0x03, 0xE0, 0xFF, 0x90, 0x12, 0xF7, 0xE0, 0x2F, + 0xFF, 0x90, 0x12, 0xF6, 0xE0, 0x34, 0x00, 0xFE, + 0x74, 0x00, 0x2D, 0xF5, 0x82, 0x74, 0x60, 0x3C, + 0xF5, 0x83, 0xE0, 0xD3, 0x9F, 0xE4, 0x9E, 0x40, + 0x3F, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, + 0x90, 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, + 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, + 0xE0, 0xFD, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, + 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, + 0xA4, 0x24, 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, + 0x10, 0xF5, 0x83, 0xE5, 0x82, 0x2D, 0xF5, 0x82, + 0xE4, 0x35, 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0x25, 0xE0, 0xFB, 0xEC, 0x33, 0xFA, 0x74, 0x81, + 0x2B, 0xF5, 0x82, 0x74, 0x81, 0x3A, 0xF5, 0x83, + 0xE0, 0x70, 0x4D, 0xD3, 0x90, 0x12, 0xE3, 0xE0, + 0x94, 0x01, 0x90, 0x12, 0xE2, 0xE0, 0x94, 0x00, + 0x50, 0x03, 0x02, 0x32, 0x5E, 0xED, 0x25, 0xE0, + 0xFF, 0xEC, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, + 0x83, 0xE5, 0x82, 0x2D, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0xE4, 0xF0, 0x02, 0x32, 0x5E, + 0x74, 0x81, 0x2B, 0xF5, 0x82, 0x74, 0x81, 0x3A, + 0xF5, 0x83, 0xE0, 0x64, 0x1D, 0x70, 0x52, 0xD3, + 0x90, 0x12, 0xE3, 0xE0, 0x94, 0x01, 0x90, 0x12, + 0xE2, 0xE0, 0x94, 0x00, 0x50, 0x03, 0x02, 0x32, + 0x5E, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, + 0x90, 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, + 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, + 0xE0, 0xFD, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, + 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, + 0xA4, 0x24, 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, + 0x10, 0xF5, 0x83, 0xE5, 0x82, 0x2D, 0xF5, 0x82, + 0xE4, 0x35, 0x83, 0xF5, 0x83, 0xE4, 0xF0, 0x80, + 0x4D, 0xD3, 0x90, 0x12, 0xE3, 0xE0, 0x94, 0x05, + 0x90, 0x12, 0xE2, 0xE0, 0x94, 0x00, 0x40, 0x3E, + 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, + 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, + 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, + 0xFD, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, + 0x3E, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, + 0x24, 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, + 0xF5, 0x83, 0xE5, 0x82, 0x2D, 0xF5, 0x82, 0xE4, + 0x35, 0x83, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x12, + 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, 0x82, + 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xF5, 0xCB, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0xF5, 0xCC, 0xD2, 0xB5, 0x30, + 0xB5, 0x05, 0x75, 0x9E, 0x55, 0x80, 0xF8, 0x7D, + 0x19, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, + 0x90, 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x81, + 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, + 0xE0, 0x70, 0x03, 0x02, 0x35, 0x6E, 0x74, 0x81, + 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, + 0xE0, 0x64, 0x1D, 0x70, 0x03, 0x02, 0x35, 0x6E, + 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, + 0x12, 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, + 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, + 0x70, 0x03, 0x02, 0x35, 0x6E, 0x74, 0x80, 0x2F, + 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, + 0x64, 0x13, 0x70, 0x03, 0x02, 0x35, 0x6E, 0x90, + 0x12, 0xDA, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0x25, + 0xE0, 0xFF, 0xEA, 0x33, 0xFE, 0x74, 0x80, 0x2F, + 0xF5, 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, + 0xFC, 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, + 0x3E, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, + 0x24, 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, + 0xF5, 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, + 0x35, 0x83, 0xF5, 0x83, 0xE0, 0x64, 0x01, 0x60, + 0x03, 0x02, 0x35, 0x6E, 0xC3, 0xE5, 0xCA, 0x95, + 0xB7, 0xC3, 0x9D, 0x50, 0x39, 0xEB, 0x25, 0xE0, + 0xFF, 0xEA, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0xEB, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x0F, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xB9, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0xEC, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x0F, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xBA, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0xED, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x0F, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xBD, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0xFF, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x0F, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xBE, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0x01, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xC2, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0x13, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xC3, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFC, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0x14, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, + 0x83, 0xE5, 0x82, 0x2C, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0xC3, 0xE5, + 0xCA, 0x95, 0xC4, 0xC3, 0x9D, 0x50, 0x3F, 0x90, + 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0x33, 0xFE, 0x74, 0x80, 0x2F, 0xF5, + 0x82, 0x74, 0x81, 0x3E, 0xF5, 0x83, 0xE0, 0xFD, + 0x74, 0x81, 0x2F, 0xF5, 0x82, 0x74, 0x81, 0x3E, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x14, 0xA4, 0x24, + 0x15, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x10, 0xF5, + 0x83, 0xE5, 0x82, 0x2D, 0xF5, 0x82, 0xE4, 0x35, + 0x83, 0xF5, 0x83, 0x74, 0x01, 0xF0, 0x90, 0x12, + 0xDB, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x29, 0xD9, 0x22, + 0xE4, 0x90, 0x8F, 0xF0, 0xF0, 0xD2, 0x18, 0x30, + 0x14, 0x03, 0x02, 0x3B, 0x5F, 0x90, 0x12, 0x5F, + 0xF0, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, 0xDA, + 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x40, 0x03, 0x02, + 0x3A, 0x13, 0x74, 0xE5, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x70, 0x03, 0x02, + 0x3A, 0x0A, 0x90, 0x12, 0xDA, 0xE0, 0x24, 0xC0, + 0xF5, 0x82, 0xE4, 0x34, 0x12, 0xF5, 0x83, 0xE0, + 0x60, 0x03, 0x02, 0x3A, 0x0A, 0x74, 0x14, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xE0, + 0xC3, 0x94, 0x01, 0x74, 0x80, 0x94, 0x88, 0x40, + 0x03, 0x02, 0x3A, 0x0A, 0x90, 0x12, 0xDA, 0xE0, + 0x24, 0xE5, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0xE0, 0x64, 0x03, 0x60, 0x04, 0xC2, 0x18, + 0x80, 0x07, 0x7F, 0x70, 0x7E, 0x17, 0x12, 0x67, + 0xEE, 0x90, 0x12, 0xDA, 0xE0, 0x24, 0xE5, 0xF5, + 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0xB4, + 0x02, 0x08, 0x90, 0x12, 0x5F, 0xE0, 0x04, 0xF0, + 0x80, 0x06, 0x90, 0x12, 0x5F, 0xE0, 0x14, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFD, 0xA3, 0xE0, 0x90, 0x12, + 0xDB, 0xCD, 0xF0, 0xA3, 0xED, 0xF0, 0xEF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFD, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x90, 0x12, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE1, 0x74, 0x1E, + 0xF0, 0xA3, 0x74, 0x14, 0xF0, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0xEE, 0x33, 0x95, 0xE0, 0xFD, 0xFC, 0xE4, 0xFB, + 0x7A, 0x05, 0xF9, 0xF8, 0x12, 0x5A, 0x34, 0x78, + 0x04, 0x12, 0x5B, 0x75, 0x90, 0x12, 0xDD, 0x12, + 0x5B, 0x88, 0x90, 0x12, 0xE1, 0xE0, 0xFF, 0x90, + 0x28, 0x0B, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, 0xFF, + 0xAE, 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, 0xF8, + 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, 0x5A, + 0xBF, 0xAC, 0x00, 0xAD, 0x01, 0xAE, 0x02, 0xAF, + 0x03, 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x12, 0xE1, + 0xE0, 0xFF, 0x90, 0x28, 0x0B, 0xE4, 0x93, 0x8F, + 0xF0, 0xA4, 0xFF, 0xE5, 0xF0, 0xA2, 0xE7, 0x13, + 0xFE, 0xEF, 0x13, 0xFF, 0xFB, 0xAA, 0x06, 0xEA, + 0x33, 0x95, 0xE0, 0xF9, 0xF8, 0xD0, 0x07, 0xD0, + 0x06, 0xD3, 0x12, 0x5B, 0x51, 0x50, 0x3C, 0x90, + 0x12, 0xE1, 0xE0, 0xFF, 0x90, 0x28, 0x0B, 0xE4, + 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, + 0xAA, 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, 0xDD, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x12, 0x5A, 0xBF, 0xEF, 0x24, + 0x01, 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, + 0xE4, 0x3C, 0xFC, 0x90, 0x12, 0xDD, 0x12, 0x5B, + 0x88, 0x80, 0x33, 0x90, 0x12, 0xDD, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xC0, 0x06, 0xC0, 0x07, 0xA3, 0xE0, 0xFF, + 0x90, 0x28, 0x0B, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, + 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, + 0xF8, 0xD0, 0x07, 0xD0, 0x06, 0x12, 0x5A, 0xBF, + 0x90, 0x12, 0xDD, 0x12, 0x5B, 0x88, 0x90, 0x12, + 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x04, 0x12, 0x5B, + 0x62, 0x90, 0x12, 0xDA, 0xE0, 0xFD, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0xEE, 0x33, 0x95, 0xE0, 0xFD, + 0xFC, 0xE4, 0x7B, 0x20, 0x7A, 0x03, 0xF9, 0xF8, + 0x12, 0x5A, 0x34, 0x78, 0x04, 0x12, 0x5B, 0x75, + 0x90, 0x12, 0xDD, 0x12, 0x5B, 0x88, 0x90, 0x12, + 0xE2, 0xE0, 0xFF, 0x90, 0x28, 0x0C, 0xE4, 0x93, + 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, + 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, 0xDD, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x12, 0x5A, 0xBF, 0xAC, 0x00, 0xAD, + 0x01, 0xAE, 0x02, 0xAF, 0x03, 0xC0, 0x06, 0xC0, + 0x07, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x90, 0x28, + 0x0C, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xE5, + 0xF0, 0xA2, 0xE7, 0x13, 0xFE, 0xEF, 0x13, 0xFF, + 0xFB, 0xAA, 0x06, 0xEA, 0x33, 0x95, 0xE0, 0xF9, + 0xF8, 0xD0, 0x07, 0xD0, 0x06, 0xD3, 0x12, 0x5B, + 0x51, 0x50, 0x3C, 0x90, 0x12, 0xE2, 0xE0, 0xFF, + 0x90, 0x28, 0x0C, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, + 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, + 0xF8, 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, + 0x5A, 0xBF, 0xEF, 0x24, 0x01, 0xFF, 0xE4, 0x3E, + 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, 0x90, + 0x12, 0xDD, 0x12, 0x5B, 0x88, 0x80, 0x35, 0x90, + 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC0, 0x06, 0xC0, + 0x07, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x90, 0x28, + 0x0C, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, + 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, 0xF8, 0xD0, + 0x07, 0xD0, 0x06, 0x12, 0x5A, 0xBF, 0x90, 0x12, + 0xDD, 0x12, 0x5B, 0x88, 0x90, 0x12, 0xDD, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x78, 0x04, 0x12, 0x5B, 0x62, 0x90, + 0x12, 0xDA, 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xED, 0x04, + 0xFF, 0x33, 0x33, 0x33, 0x54, 0xF8, 0xFF, 0x74, + 0xE5, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, + 0x83, 0xE0, 0x4F, 0xFF, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x03, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0xED, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0x78, 0x04, 0xCE, 0xA2, 0xE7, 0x13, 0xCE, + 0x13, 0xD8, 0xF8, 0xFF, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0xED, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, + 0xE0, 0x78, 0x04, 0xCE, 0xA2, 0xE7, 0x13, 0xCE, + 0x13, 0xD8, 0xF8, 0xFF, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x01, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0xED, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xA3, 0xE0, 0xC4, + 0xF8, 0x54, 0x0F, 0xC8, 0x68, 0xFF, 0x05, 0x82, + 0xD5, 0x82, 0x02, 0x15, 0x83, 0x15, 0x82, 0xE0, + 0xC4, 0x54, 0xF0, 0x48, 0xEF, 0x54, 0xF0, 0xFF, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xA3, + 0xE0, 0x54, 0x0F, 0x4F, 0xFF, 0x90, 0x8F, 0xF0, + 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x02, 0xF5, + 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, + 0x90, 0x3F, 0xFE, 0xE0, 0xB4, 0x01, 0x2D, 0xE5, + 0x09, 0xFF, 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, + 0x06, 0xA4, 0x24, 0x04, 0xF5, 0x82, 0xE4, 0x34, + 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0xAF, 0x0A, 0x90, + 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, + 0x05, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, + 0xEF, 0xF0, 0x80, 0x28, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x04, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, 0x08, 0xF0, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x05, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0x74, 0x08, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, + 0x04, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, + 0x02, 0x35, 0x95, 0x90, 0x8F, 0xF0, 0xE0, 0xFF, + 0x90, 0x12, 0x5F, 0xE0, 0xB5, 0x07, 0x04, 0xD2, + 0x04, 0x80, 0x02, 0xC2, 0x04, 0x20, 0x16, 0x03, + 0x02, 0x3A, 0xC4, 0x78, 0x10, 0xE6, 0x60, 0x02, + 0xC2, 0x18, 0x78, 0x11, 0xE6, 0x24, 0x14, 0xFF, + 0x33, 0x33, 0x33, 0x54, 0xF8, 0xFF, 0x78, 0x10, + 0xE6, 0xFE, 0x4F, 0xFF, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0x90, + 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, + 0x01, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, + 0xE4, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, + 0x06, 0xA4, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, + 0x8F, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x8F, 0xF0, + 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x03, 0xF5, + 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xE4, 0xF0, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x04, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xE4, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, 0x75, + 0xF0, 0x06, 0xA4, 0x24, 0x05, 0xF5, 0x82, 0xE4, + 0x34, 0x8F, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x8F, + 0xF0, 0xE0, 0x04, 0xF0, 0xEE, 0x70, 0x05, 0x78, + 0x11, 0xF6, 0xC2, 0x16, 0x30, 0x0B, 0x03, 0x02, + 0x3B, 0x4A, 0x90, 0x8F, 0xF0, 0xE0, 0x90, 0x12, + 0xDA, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0xC3, + 0x95, 0x0D, 0x50, 0x6E, 0xEF, 0x75, 0xF0, 0x06, + 0xA4, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x8F, + 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0xEF, 0x75, 0xF0, + 0x06, 0xA4, 0x24, 0x01, 0xF5, 0x82, 0xE4, 0x34, + 0x8F, 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0xEF, 0x75, + 0xF0, 0x06, 0xA4, 0x24, 0x02, 0xF5, 0x82, 0xE4, + 0x34, 0x8F, 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0xEF, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x03, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, 0xFF, 0xF0, + 0xEF, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x04, 0xF5, + 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, 0xFF, + 0xF0, 0xEF, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x05, + 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, + 0xFF, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, + 0x80, 0x88, 0x90, 0x8F, 0xF0, 0xE0, 0xD3, 0x94, + 0x00, 0x50, 0x03, 0x02, 0x41, 0x2C, 0x20, 0x18, + 0x03, 0x02, 0x41, 0x2C, 0xD2, 0x0C, 0x22, 0xE4, + 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, 0xDA, 0xE0, + 0xFF, 0xC3, 0x95, 0x0D, 0x40, 0x03, 0x02, 0x3F, + 0xE7, 0xE4, 0x90, 0x12, 0x5F, 0xF0, 0x74, 0xE5, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, + 0xE0, 0x70, 0x03, 0x02, 0x3F, 0xDE, 0x90, 0x12, + 0xDA, 0xE0, 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, + 0x12, 0xF5, 0x83, 0xE0, 0x60, 0x03, 0x02, 0x3F, + 0xDE, 0x74, 0x14, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0x8A, 0xF5, 0x83, 0xE0, 0xC3, 0x94, 0x01, 0x74, + 0x80, 0x94, 0x88, 0x40, 0x03, 0x02, 0x3F, 0xDE, + 0x90, 0x12, 0xDA, 0xE0, 0x24, 0xE5, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x64, 0x03, + 0x60, 0x04, 0xC2, 0x18, 0x80, 0x07, 0x7F, 0x70, + 0x7E, 0x17, 0x12, 0x67, 0xEE, 0x90, 0x12, 0xDA, + 0xE0, 0x24, 0xE5, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0xE0, 0xB4, 0x02, 0x08, 0x90, 0x12, + 0x5F, 0xE0, 0x04, 0xF0, 0x80, 0x06, 0x90, 0x12, + 0x5F, 0xE0, 0x14, 0xF0, 0x90, 0x12, 0xDA, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFD, + 0xA3, 0xE0, 0x90, 0x12, 0xDB, 0xCD, 0xF0, 0xA3, + 0xED, 0xF0, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x12, 0xDA, + 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xDB, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, + 0x12, 0xE1, 0x74, 0x1E, 0xF0, 0xA3, 0x74, 0x14, + 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, 0x33, 0x95, 0xE0, + 0xFD, 0xFC, 0xE4, 0xFB, 0x7A, 0x05, 0xF9, 0xF8, + 0x12, 0x5A, 0x34, 0x78, 0x04, 0x12, 0x5B, 0x75, + 0x90, 0x12, 0xDD, 0x12, 0x5B, 0x88, 0x90, 0x12, + 0xE1, 0xE0, 0xFF, 0x90, 0x28, 0x0B, 0xE4, 0x93, + 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, + 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, 0xDD, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x12, 0x5A, 0xBF, 0xAC, 0x00, 0xAD, + 0x01, 0xAE, 0x02, 0xAF, 0x03, 0xC0, 0x06, 0xC0, + 0x07, 0x90, 0x12, 0xE1, 0xE0, 0xFF, 0x90, 0x28, + 0x0B, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xE5, + 0xF0, 0xA2, 0xE7, 0x13, 0xFE, 0xEF, 0x13, 0xFF, + 0xFB, 0xAA, 0x06, 0xEA, 0x33, 0x95, 0xE0, 0xF9, + 0xF8, 0xD0, 0x07, 0xD0, 0x06, 0xD3, 0x12, 0x5B, + 0x51, 0x50, 0x3C, 0x90, 0x12, 0xE1, 0xE0, 0xFF, + 0x90, 0x28, 0x0B, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, + 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, + 0xF8, 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, + 0x5A, 0xBF, 0xEF, 0x24, 0x01, 0xFF, 0xE4, 0x3E, + 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, 0x90, + 0x12, 0xDD, 0x12, 0x5B, 0x88, 0x80, 0x33, 0x90, + 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC0, 0x06, 0xC0, + 0x07, 0xA3, 0xE0, 0xFF, 0x90, 0x28, 0x0B, 0xE4, + 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, + 0xAA, 0x06, 0xE4, 0xF9, 0xF8, 0xD0, 0x07, 0xD0, + 0x06, 0x12, 0x5A, 0xBF, 0x90, 0x12, 0xDD, 0x12, + 0x5B, 0x88, 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x78, 0x04, 0x12, 0x5B, 0x62, 0x90, 0x12, 0xDA, + 0xE0, 0xFD, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, + 0x33, 0x95, 0xE0, 0xFD, 0xFC, 0xE4, 0x7B, 0x20, + 0x7A, 0x03, 0xF9, 0xF8, 0x12, 0x5A, 0x34, 0x78, + 0x04, 0x12, 0x5B, 0x75, 0x90, 0x12, 0xDD, 0x12, + 0x5B, 0x88, 0x90, 0x12, 0xE2, 0xE0, 0xFF, 0x90, + 0x28, 0x0C, 0xE4, 0x93, 0x8F, 0xF0, 0xA4, 0xFF, + 0xAE, 0xF0, 0xFB, 0xAA, 0x06, 0xE4, 0xF9, 0xF8, + 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, 0x5A, + 0xBF, 0xAC, 0x00, 0xAD, 0x01, 0xAE, 0x02, 0xAF, + 0x03, 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x90, 0x28, 0x0C, 0xE4, 0x93, 0x8F, + 0xF0, 0xA4, 0xFF, 0xE5, 0xF0, 0xA2, 0xE7, 0x13, + 0xFE, 0xEF, 0x13, 0xFF, 0xFB, 0xAA, 0x06, 0xEA, + 0x33, 0x95, 0xE0, 0xF9, 0xF8, 0xD0, 0x07, 0xD0, + 0x06, 0xD3, 0x12, 0x5B, 0x51, 0x50, 0x3C, 0x90, + 0x12, 0xE2, 0xE0, 0xFF, 0x90, 0x28, 0x0C, 0xE4, + 0x93, 0x8F, 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, + 0xAA, 0x06, 0xE4, 0xF9, 0xF8, 0x90, 0x12, 0xDD, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x12, 0x5A, 0xBF, 0xEF, 0x24, + 0x01, 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, + 0xE4, 0x3C, 0xFC, 0x90, 0x12, 0xDD, 0x12, 0x5B, + 0x88, 0x80, 0x35, 0x90, 0x12, 0xDD, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x12, 0xE2, + 0xE0, 0xFF, 0x90, 0x28, 0x0C, 0xE4, 0x93, 0x8F, + 0xF0, 0xA4, 0xFF, 0xAE, 0xF0, 0xFB, 0xAA, 0x06, + 0xE4, 0xF9, 0xF8, 0xD0, 0x07, 0xD0, 0x06, 0x12, + 0x5A, 0xBF, 0x90, 0x12, 0xDD, 0x12, 0x5B, 0x88, + 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x04, + 0x12, 0x5B, 0x62, 0x90, 0x12, 0xDA, 0xE0, 0xFD, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0xED, 0x04, 0xFF, 0x33, 0x33, 0x33, + 0x54, 0xF8, 0xFF, 0x74, 0xE5, 0x2D, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x4F, 0xFF, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x7B, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0x78, 0x04, 0xCE, + 0xA2, 0xE7, 0x13, 0xCE, 0x13, 0xD8, 0xF8, 0xFF, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x78, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0x78, 0x04, 0xCE, + 0xA2, 0xE7, 0x13, 0xCE, 0x13, 0xD8, 0xF8, 0xFF, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x79, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xA3, 0xE0, 0xC4, 0xF8, 0x54, 0x0F, 0xC8, + 0x68, 0xFF, 0x05, 0x82, 0xD5, 0x82, 0x02, 0x15, + 0x83, 0x15, 0x82, 0xE0, 0xC4, 0x54, 0xF0, 0x48, + 0xEF, 0x54, 0xF0, 0xFF, 0xED, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xA3, 0xE0, 0x54, 0x0F, 0x4F, + 0xFF, 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, + 0xA4, 0x24, 0x7A, 0xF5, 0x82, 0xE4, 0x34, 0x8F, + 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x3F, 0xFE, 0xE0, + 0xB4, 0x01, 0x2D, 0xE5, 0x09, 0xFF, 0x90, 0x8F, + 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x7C, + 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xEF, + 0xF0, 0xAF, 0x0A, 0x90, 0x8F, 0xF0, 0xE0, 0x75, + 0xF0, 0x06, 0xA4, 0x24, 0x7D, 0xF5, 0x82, 0xE4, + 0x34, 0x8F, 0xF5, 0x83, 0xEF, 0xF0, 0x80, 0x28, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x7C, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0x74, 0x08, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x7D, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, 0x08, 0xF0, + 0x90, 0x8F, 0xF0, 0xE0, 0x04, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x3B, 0x64, 0x90, + 0x8F, 0xF0, 0xE0, 0xFF, 0x90, 0x12, 0x5F, 0xE0, + 0xB5, 0x07, 0x04, 0xD2, 0x04, 0x80, 0x02, 0xC2, + 0x04, 0x20, 0x16, 0x03, 0x02, 0x40, 0x98, 0x78, + 0x10, 0xE6, 0x60, 0x02, 0xC2, 0x18, 0x78, 0x11, + 0xE6, 0x24, 0x14, 0xFF, 0x33, 0x33, 0x33, 0x54, + 0xF8, 0xFF, 0x78, 0x10, 0xE6, 0xFE, 0x4F, 0xFF, + 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x78, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xEF, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, 0x75, + 0xF0, 0x06, 0xA4, 0x24, 0x79, 0xF5, 0x82, 0xE4, + 0x34, 0x8F, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x8F, + 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x7A, + 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xE4, + 0xF0, 0x90, 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, + 0xA4, 0x24, 0x7B, 0xF5, 0x82, 0xE4, 0x34, 0x8F, + 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, + 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x7C, 0xF5, 0x82, + 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0xE4, 0xF0, 0x90, + 0x8F, 0xF0, 0xE0, 0x75, 0xF0, 0x06, 0xA4, 0x24, + 0x7D, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, + 0xE4, 0xF0, 0x90, 0x8F, 0xF0, 0xE0, 0x04, 0xF0, + 0xEE, 0x70, 0x05, 0x78, 0x11, 0xF6, 0xC2, 0x16, + 0x30, 0x0B, 0x03, 0x02, 0x41, 0x1E, 0x90, 0x8F, + 0xF0, 0xE0, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x50, 0x6E, + 0xEF, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x78, 0xF5, + 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, 0xFF, + 0xF0, 0xEF, 0x75, 0xF0, 0x06, 0xA4, 0x24, 0x79, + 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, 0x74, + 0xFF, 0xF0, 0xEF, 0x75, 0xF0, 0x06, 0xA4, 0x24, + 0x7A, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, 0x83, + 0x74, 0xFF, 0xF0, 0xEF, 0x75, 0xF0, 0x06, 0xA4, + 0x24, 0x7B, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0x74, 0xFF, 0xF0, 0xEF, 0x75, 0xF0, 0x06, + 0xA4, 0x24, 0x7C, 0xF5, 0x82, 0xE4, 0x34, 0x8F, + 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0xEF, 0x75, 0xF0, + 0x06, 0xA4, 0x24, 0x7D, 0xF5, 0x82, 0xE4, 0x34, + 0x8F, 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x80, 0x88, 0x90, 0x8F, + 0xF0, 0xE0, 0xD3, 0x94, 0x00, 0x40, 0x05, 0x30, + 0x18, 0x02, 0xD2, 0x0C, 0x22, 0x90, 0xF1, 0x93, + 0x74, 0x01, 0xF0, 0xE4, 0x90, 0xF1, 0x46, 0xF0, + 0x90, 0xF1, 0x1B, 0x04, 0xF0, 0x90, 0xF0, 0x02, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x01, 0xF0, + 0x90, 0xF0, 0x04, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0x03, 0xF0, 0x90, 0xF0, 0x06, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0x05, 0xF0, 0x90, 0xF0, + 0x08, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x07, + 0xF0, 0x90, 0xF0, 0x0A, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0x09, 0xF0, 0x90, 0xF0, 0x0C, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x0B, 0xF0, 0x90, + 0xF0, 0x0E, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0x0D, 0xF0, 0x90, 0xF0, 0x10, 0x74, 0x20, 0xF0, + 0xE4, 0x90, 0xF0, 0x0F, 0xF0, 0x90, 0xF0, 0x12, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x11, 0x74, 0x01, + 0xF0, 0x90, 0xF0, 0x14, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x13, 0x74, 0x02, 0xF0, 0x90, 0xF0, 0x16, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x15, 0x74, 0x03, + 0xF0, 0x90, 0xF0, 0x18, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x17, 0x74, 0x04, 0xF0, 0x90, 0xF0, 0x1A, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x19, 0x74, 0x05, + 0xF0, 0x90, 0xF0, 0x1C, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x1B, 0x74, 0x06, 0xF0, 0x90, 0xF0, 0x1E, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x1D, 0x74, 0x07, + 0xF0, 0x90, 0xF0, 0x20, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x1F, 0x74, 0x08, 0xF0, 0x90, 0xF0, 0x22, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x21, 0x74, 0x09, + 0xF0, 0x90, 0xF0, 0x24, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x23, 0x74, 0x0A, 0xF0, 0x90, 0xF0, 0x26, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x25, 0x74, 0x0B, + 0xF0, 0x90, 0xF0, 0x28, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x27, 0x74, 0x0C, 0xF0, 0x90, 0xF0, 0x2A, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x29, 0x74, 0x0D, + 0xF0, 0x90, 0xF0, 0x2C, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x2B, 0x74, 0x0E, 0xF0, 0x90, 0xF0, 0x2E, + 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x2D, 0x74, 0x0F, + 0xF0, 0x90, 0xF0, 0x30, 0x74, 0x20, 0xF0, 0x90, + 0xF0, 0x2F, 0x74, 0x10, 0xF0, 0x90, 0xF0, 0x32, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x31, 0xF0, + 0x90, 0xF0, 0x34, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0x33, 0xF0, 0x90, 0xF0, 0x36, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0x35, 0xF0, 0x90, 0xF0, + 0x38, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x37, + 0xF0, 0x90, 0xF0, 0x3A, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0x39, 0xF0, 0x90, 0xF0, 0x3C, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x3B, 0xF0, 0x90, + 0xF0, 0x3E, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0x3D, 0xF0, 0x90, 0xF0, 0x40, 0x74, 0x08, 0xF0, + 0xE4, 0x90, 0xF0, 0x3F, 0xF0, 0x90, 0xF0, 0x42, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x41, 0xF0, + 0x90, 0xF0, 0x44, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0x43, 0xF0, 0x90, 0xF0, 0x46, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0x45, 0xF0, 0x90, 0xF0, + 0x48, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x47, + 0xF0, 0x90, 0xF0, 0x4A, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0x49, 0xF0, 0x90, 0xF0, 0x4C, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x4B, 0xF0, 0x90, + 0xF0, 0x4E, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0x4D, 0xF0, 0x90, 0xF0, 0x50, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x4F, 0x74, 0x11, 0xF0, 0x90, 0xF0, + 0x52, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x51, 0x74, + 0x12, 0xF0, 0x90, 0xF0, 0x54, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x53, 0x74, 0x13, 0xF0, 0x90, 0xF0, + 0x56, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x55, 0x74, + 0x14, 0xF0, 0x90, 0xF0, 0x58, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x57, 0x74, 0x15, 0xF0, 0x90, 0xF0, + 0x5A, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x59, 0x74, + 0x16, 0xF0, 0x90, 0xF0, 0x5C, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x5B, 0x74, 0x17, 0xF0, 0x90, 0xF0, + 0x5E, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x5D, 0x74, + 0x18, 0xF0, 0x90, 0xF0, 0x60, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x5F, 0x74, 0x19, 0xF0, 0x90, 0xF0, + 0x62, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x61, 0x74, + 0x1A, 0xF0, 0x90, 0xF0, 0x64, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x63, 0x74, 0x1B, 0xF0, 0x90, 0xF0, + 0x66, 0x74, 0x20, 0xF0, 0x90, 0xF0, 0x65, 0x74, + 0x1C, 0xF0, 0x90, 0xF0, 0x68, 0x74, 0x20, 0xF0, + 0x90, 0xF0, 0x67, 0x74, 0x1D, 0xF0, 0x90, 0xF0, + 0x6A, 0x74, 0x16, 0xF0, 0x90, 0xF0, 0x69, 0x74, + 0x01, 0xF0, 0x90, 0xF0, 0x6C, 0x74, 0x16, 0xF0, + 0xE4, 0x90, 0xF0, 0x6B, 0xF0, 0x90, 0xF0, 0x6E, + 0x74, 0x15, 0xF0, 0x90, 0xF0, 0x6D, 0x74, 0x02, + 0xF0, 0x90, 0xF0, 0x70, 0x74, 0x15, 0xF0, 0x90, + 0xF0, 0x6F, 0x74, 0x01, 0xF0, 0x90, 0xF0, 0x72, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x71, 0xF0, + 0x90, 0xF0, 0x74, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0x73, 0xF0, 0x90, 0xF0, 0x76, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0x75, 0xF0, 0x90, 0xF0, + 0x78, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x77, + 0xF0, 0x90, 0xF0, 0x7A, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0x79, 0xF0, 0x90, 0xF0, 0x7C, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x7B, 0xF0, 0x90, + 0xF0, 0x7E, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0x7D, 0xF0, 0x90, 0xF0, 0x80, 0x74, 0x08, 0xF0, + 0xE4, 0x90, 0xF0, 0x7F, 0xF0, 0x90, 0xF0, 0x82, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x81, 0xF0, + 0x90, 0xF0, 0x84, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0x83, 0xF0, 0x90, 0xF0, 0x86, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0x85, 0xF0, 0x90, 0xF0, + 0x88, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x87, + 0xF0, 0x90, 0xF0, 0x8A, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0x89, 0xF0, 0x90, 0xF0, 0x8C, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0x8B, 0xF0, 0x90, + 0xF0, 0x8E, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0x8D, 0xF0, 0x90, 0xF0, 0x90, 0x74, 0x08, 0xF0, + 0xE4, 0x90, 0xF0, 0x8F, 0xF0, 0x90, 0xF0, 0x92, + 0x74, 0x15, 0xF0, 0xE4, 0x90, 0xF0, 0x91, 0xF0, + 0x90, 0xF0, 0x94, 0x74, 0x14, 0xF0, 0x90, 0xF0, + 0x93, 0x74, 0x02, 0xF0, 0x90, 0xF0, 0x96, 0x74, + 0x14, 0xF0, 0x90, 0xF0, 0x95, 0x74, 0x01, 0xF0, + 0x90, 0xF0, 0x98, 0x74, 0x14, 0xF0, 0xE4, 0x90, + 0xF0, 0x97, 0xF0, 0x90, 0xF0, 0x9A, 0x74, 0x13, + 0xF0, 0x90, 0xF0, 0x99, 0x74, 0x02, 0xF0, 0x90, + 0xF0, 0x9C, 0x74, 0x13, 0xF0, 0x90, 0xF0, 0x9B, + 0x74, 0x01, 0xF0, 0x90, 0xF0, 0x9E, 0x74, 0x13, + 0xF0, 0xE4, 0x90, 0xF0, 0x9D, 0xF0, 0x90, 0xF0, + 0xA0, 0x74, 0x12, 0xF0, 0x90, 0xF0, 0x9F, 0x74, + 0x02, 0xF0, 0x90, 0xF0, 0xA2, 0x74, 0x12, 0xF0, + 0x90, 0xF0, 0xA1, 0x74, 0x01, 0xF0, 0x90, 0xF0, + 0xA4, 0x74, 0x12, 0xF0, 0xE4, 0x90, 0xF0, 0xA3, + 0xF0, 0x90, 0xF0, 0xA6, 0x74, 0x11, 0xF0, 0x90, + 0xF0, 0xA5, 0x74, 0x02, 0xF0, 0x90, 0xF0, 0xA8, + 0x74, 0x11, 0xF0, 0x90, 0xF0, 0xA7, 0x74, 0x01, + 0xF0, 0x90, 0xF0, 0xAA, 0x74, 0x11, 0xF0, 0xE4, + 0x90, 0xF0, 0xA9, 0xF0, 0x90, 0xF0, 0xAC, 0x74, + 0x10, 0xF0, 0x90, 0xF0, 0xAB, 0x74, 0x02, 0xF0, + 0x90, 0xF0, 0xAE, 0x74, 0x10, 0xF0, 0x90, 0xF0, + 0xAD, 0x74, 0x01, 0xF0, 0x90, 0xF0, 0xB0, 0x74, + 0x10, 0xF0, 0xE4, 0x90, 0xF0, 0xAF, 0xF0, 0x90, + 0xF0, 0xB2, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, + 0xB1, 0xF0, 0x90, 0xF0, 0xB4, 0x74, 0x08, 0xF0, + 0xE4, 0x90, 0xF0, 0xB3, 0xF0, 0x90, 0xF0, 0xB6, + 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0xB5, 0xF0, + 0x90, 0xF0, 0xB8, 0x74, 0x08, 0xF0, 0xE4, 0x90, + 0xF0, 0xB7, 0xF0, 0x90, 0xF0, 0xBA, 0x74, 0x08, + 0xF0, 0xE4, 0x90, 0xF0, 0xB9, 0xF0, 0x90, 0xF0, + 0xBC, 0x74, 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0xBB, + 0xF0, 0x90, 0xF0, 0xBE, 0x74, 0x08, 0xF0, 0xE4, + 0x90, 0xF0, 0xBD, 0xF0, 0x90, 0xF0, 0xC0, 0x74, + 0x08, 0xF0, 0xE4, 0x90, 0xF0, 0xBF, 0xF0, 0x90, + 0xF1, 0x06, 0x74, 0x14, 0xF0, 0x90, 0xF1, 0x07, + 0x74, 0x1E, 0xF0, 0x90, 0xF1, 0x0E, 0x74, 0x03, + 0xF0, 0x90, 0xF1, 0x0F, 0xF0, 0x90, 0xF1, 0x10, + 0xF0, 0x90, 0xF1, 0x11, 0xF0, 0x90, 0xF1, 0x12, + 0xF0, 0x90, 0xF1, 0x13, 0xF0, 0x90, 0xF1, 0x14, + 0x14, 0xF0, 0xE4, 0x90, 0xF1, 0x15, 0xF0, 0x90, + 0xF1, 0x1F, 0x74, 0x08, 0xF0, 0x90, 0xF1, 0x22, + 0x74, 0x03, 0xF0, 0x90, 0xF1, 0x1D, 0x74, 0x08, + 0xF0, 0x90, 0xF1, 0x21, 0x74, 0x0A, 0xF0, 0xE4, + 0x90, 0xF1, 0x1C, 0xF0, 0x90, 0xF1, 0x43, 0x74, + 0x3A, 0xF0, 0x90, 0xF2, 0xA4, 0x74, 0x32, 0xF0, + 0x90, 0xF2, 0xA5, 0xF0, 0x90, 0x28, 0x01, 0xE4, + 0x93, 0x90, 0xF1, 0x01, 0xF0, 0x90, 0x28, 0x00, + 0xE4, 0x93, 0x90, 0xF1, 0x02, 0xF0, 0x90, 0x28, + 0x02, 0xE4, 0x93, 0x90, 0xF1, 0x03, 0xF0, 0x90, + 0x28, 0x03, 0xE4, 0x93, 0x90, 0xF1, 0x04, 0xF0, + 0x90, 0x28, 0x04, 0xE4, 0x93, 0x90, 0xF1, 0x05, + 0xF0, 0x90, 0x28, 0x05, 0xE4, 0x93, 0x90, 0xF1, + 0x08, 0xF0, 0x90, 0x28, 0x06, 0xE4, 0x93, 0x90, + 0xF1, 0x09, 0xF0, 0x90, 0x28, 0x0F, 0xE4, 0x93, + 0x90, 0xF1, 0x0A, 0xF0, 0x90, 0x28, 0x07, 0xE4, + 0x93, 0x90, 0xF1, 0x0B, 0xF0, 0x90, 0xF0, 0xC5, + 0x74, 0x07, 0xF0, 0x90, 0xF1, 0x18, 0x74, 0xF4, + 0xF0, 0xE0, 0x54, 0x0F, 0xB4, 0x09, 0x00, 0x50, + 0x6A, 0x90, 0x46, 0x50, 0xF8, 0x28, 0x28, 0x73, + 0x02, 0x46, 0x6B, 0x02, 0x46, 0x73, 0x02, 0x46, + 0x7B, 0x02, 0x46, 0x83, 0x02, 0x46, 0x8B, 0x02, + 0x46, 0x93, 0x02, 0x46, 0x9B, 0x02, 0x46, 0xA3, + 0x02, 0x46, 0xAB, 0x90, 0xF1, 0x0C, 0x74, 0x02, + 0xF0, 0x80, 0x46, 0x90, 0xF1, 0x0C, 0x74, 0x04, + 0xF0, 0x80, 0x3E, 0x90, 0xF1, 0x0C, 0x74, 0x08, + 0xF0, 0x80, 0x36, 0x90, 0xF1, 0x0C, 0x74, 0x10, + 0xF0, 0x80, 0x2E, 0x90, 0xF1, 0x0C, 0x74, 0x20, + 0xF0, 0x80, 0x26, 0x90, 0xF1, 0x0C, 0x74, 0x40, + 0xF0, 0x80, 0x1E, 0x90, 0xF1, 0x0C, 0x74, 0x80, + 0xF0, 0x80, 0x16, 0x90, 0xF1, 0x0C, 0x74, 0x80, + 0xF0, 0x80, 0x0E, 0x90, 0xF1, 0x0C, 0x74, 0x80, + 0xF0, 0x80, 0x06, 0x90, 0xF1, 0x0C, 0x74, 0x02, + 0xF0, 0x90, 0x28, 0x08, 0xE4, 0x93, 0x90, 0xF1, + 0x0D, 0xF0, 0x90, 0x28, 0x09, 0xE4, 0x93, 0x90, + 0xF1, 0x16, 0xF0, 0xD2, 0xAD, 0xE4, 0x90, 0xF1, + 0x17, 0xF0, 0x90, 0xF0, 0xC4, 0x04, 0xF0, 0x20, + 0x0A, 0x07, 0x75, 0x9E, 0x55, 0xB2, 0x83, 0x80, + 0xF6, 0x22, 0x90, 0x12, 0xDB, 0xE4, 0xF0, 0xA3, + 0x74, 0x40, 0xF0, 0xE4, 0x90, 0x12, 0xDF, 0xF0, + 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x12, + 0xDD, 0xF0, 0xA3, 0x74, 0x40, 0xF0, 0xE4, 0x90, + 0x12, 0xE3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0x12, 0xDA, 0xF0, 0x90, 0x12, 0xDA, + 0xE0, 0xFF, 0xC3, 0x95, 0x0D, 0x40, 0x03, 0x02, + 0x4C, 0x37, 0x74, 0xE5, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x70, 0x03, 0x02, + 0x4C, 0x2E, 0x90, 0x12, 0xDA, 0xE0, 0xF9, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0x90, 0x12, 0xDB, 0xE0, 0xFA, 0xA3, 0xE0, + 0xFB, 0xC3, 0xED, 0x9B, 0xEA, 0x64, 0x80, 0xF8, + 0xEC, 0x64, 0x80, 0x98, 0x40, 0x03, 0x02, 0x48, + 0x22, 0x90, 0x28, 0x0D, 0xE4, 0x93, 0xFB, 0xFD, + 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, + 0xA3, 0xE0, 0xC3, 0x9D, 0xFF, 0xEE, 0x94, 0x00, + 0xFE, 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xDF, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x12, 0xDC, + 0xE0, 0x9F, 0xFF, 0x90, 0x12, 0xDB, 0xE0, 0x9E, + 0xFE, 0x90, 0x12, 0xDA, 0xE0, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x12, + 0x59, 0x81, 0xEB, 0xFD, 0xC3, 0x90, 0x12, 0xDC, + 0xE0, 0x9D, 0xFD, 0x90, 0x12, 0xDB, 0xE0, 0x94, + 0x00, 0xFC, 0x12, 0x59, 0xE8, 0x90, 0x12, 0xE0, + 0xE0, 0x2F, 0xFF, 0x90, 0x12, 0xDF, 0xE0, 0x3E, + 0xFE, 0x90, 0x12, 0xDA, 0xE0, 0xFD, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFE, + 0xA3, 0xE0, 0xC3, 0xEE, 0x64, 0x80, 0x94, 0x80, + 0x40, 0x03, 0x02, 0x49, 0xAC, 0xED, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE4, 0xF0, 0xA3, 0xF0, 0x02, + 0x49, 0xAC, 0x90, 0xF1, 0x06, 0xE0, 0xFF, 0xAE, + 0x0B, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, 0x90, 0x12, + 0xDB, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xC3, 0xEF, + 0x9D, 0xFF, 0xE5, 0xF0, 0x9C, 0xFE, 0x90, 0x12, + 0xDA, 0xE0, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFC, 0xA3, 0xE0, 0xD3, 0x9F, 0xEE, 0x64, 0x80, + 0xF8, 0xEC, 0x64, 0x80, 0x98, 0x50, 0x03, 0x02, + 0x49, 0x82, 0x90, 0xF1, 0x06, 0xE0, 0xFF, 0xAE, + 0x0B, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, 0x90, 0x12, + 0xDB, 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, 0xEF, 0x9D, + 0xFF, 0xE5, 0xF0, 0x9C, 0xFE, 0x90, 0x12, 0xDA, + 0xE0, 0xF9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x50, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, + 0xFA, 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, 0xEA, 0x9E, + 0xFE, 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, 0xE1, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0xED, 0x9F, 0xFF, + 0xEC, 0x9E, 0xFE, 0xE9, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x12, 0x59, + 0x81, 0x90, 0x28, 0x0D, 0xE4, 0x93, 0xFD, 0x90, + 0x12, 0xDB, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xC3, + 0x9D, 0xFD, 0xEA, 0x94, 0x00, 0xFC, 0x12, 0x59, + 0xE8, 0x90, 0x12, 0xE2, 0xE0, 0x2F, 0xFF, 0x90, + 0x12, 0xE1, 0xE0, 0x3E, 0xFE, 0x90, 0x12, 0xDA, + 0xE0, 0xF9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0xF1, 0x06, 0xE0, + 0xFF, 0xAE, 0x0B, 0xEE, 0x8F, 0xF0, 0xA4, 0xC3, + 0x9B, 0xFF, 0xE5, 0xF0, 0x9A, 0xFE, 0xE9, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xEE, 0x8F, 0xF0, 0x12, + 0x5A, 0x1E, 0x90, 0xF1, 0x06, 0xE0, 0xFF, 0xAE, + 0x0B, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, 0xE9, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xD3, 0x9F, 0xE5, 0xF0, 0x64, 0x80, 0xF8, 0xEC, + 0x64, 0x80, 0x98, 0x40, 0x4F, 0x90, 0xF1, 0x06, + 0xE0, 0xFF, 0xAE, 0x0B, 0xEE, 0x8F, 0xF0, 0xA4, + 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0xAC, 0xF5, 0x82, 0xE4, 0x34, 0x89, + 0xF5, 0x83, 0xE5, 0xF0, 0xF0, 0xA3, 0xEF, 0xF0, + 0x80, 0x2A, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0x50, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAC, + 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEC, + 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, 0xDA, 0xE0, + 0xF9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0x90, 0x12, 0xDD, 0xE0, 0xFA, + 0xA3, 0xE0, 0xFB, 0xC3, 0xED, 0x9B, 0xEA, 0x64, + 0x80, 0xF8, 0xEC, 0x64, 0x80, 0x98, 0x40, 0x03, + 0x02, 0x4A, 0xA4, 0x90, 0x28, 0x0E, 0xE4, 0x93, + 0xFB, 0xFD, 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFE, 0xA3, 0xE0, 0xC3, 0x9D, 0xFF, 0xEE, + 0x94, 0x00, 0xFE, 0xE9, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xE3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, + 0x12, 0xDE, 0xE0, 0x9F, 0xFF, 0x90, 0x12, 0xDD, + 0xE0, 0x9E, 0xFE, 0x90, 0x12, 0xDA, 0xE0, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0x12, 0x59, 0x81, 0xEB, 0xFD, 0xC3, 0x90, + 0x12, 0xDE, 0xE0, 0x9D, 0xFD, 0x90, 0x12, 0xDD, + 0xE0, 0x94, 0x00, 0xFC, 0x12, 0x59, 0xE8, 0x90, + 0x12, 0xE4, 0xE0, 0x2F, 0xFF, 0x90, 0x12, 0xE3, + 0xE0, 0x3E, 0xFE, 0x90, 0x12, 0xDA, 0xE0, 0xFD, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0xED, 0x25, 0xE0, 0x25, 0xE0, 0x24, + 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, + 0xE0, 0xFE, 0xA3, 0xE0, 0xC3, 0xEE, 0x64, 0x80, + 0x94, 0x80, 0x40, 0x03, 0x02, 0x4C, 0x2E, 0xED, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, + 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE4, 0xF0, 0xA3, + 0xF0, 0x02, 0x4C, 0x2E, 0x90, 0xF1, 0x07, 0xE0, + 0xFF, 0xAE, 0x0C, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, + 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xC3, 0xEF, 0x9D, 0xFF, 0xE5, 0xF0, 0x9C, 0xFE, + 0x90, 0x12, 0xDA, 0xE0, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xD3, 0x9F, 0xEE, + 0x64, 0x80, 0xF8, 0xEC, 0x64, 0x80, 0x98, 0x50, + 0x03, 0x02, 0x4C, 0x04, 0x90, 0xF1, 0x07, 0xE0, + 0xFF, 0xAE, 0x0C, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, + 0x90, 0x12, 0xDD, 0xE0, 0xFC, 0xA3, 0xE0, 0xC3, + 0xEF, 0x9D, 0xFF, 0xE5, 0xF0, 0x9C, 0xFE, 0x90, + 0x12, 0xDA, 0xE0, 0xF9, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xE0, 0xFA, 0xA3, 0xE0, 0xC3, 0x9F, 0xFF, + 0xEA, 0x9E, 0xFE, 0xE9, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xE5, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0xED, + 0x9F, 0xFF, 0xEC, 0x9E, 0xFE, 0xE9, 0x25, 0xE0, + 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, + 0x89, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0x12, 0x59, 0x81, 0x90, 0x28, 0x0E, 0xE4, 0x93, + 0xFD, 0x90, 0x12, 0xDD, 0xE0, 0xFA, 0xA3, 0xE0, + 0xFB, 0xC3, 0x9D, 0xFD, 0xEA, 0x94, 0x00, 0xFC, + 0x12, 0x59, 0xE8, 0x90, 0x12, 0xE6, 0xE0, 0x2F, + 0xFF, 0x90, 0x12, 0xE5, 0xE0, 0x3E, 0xFE, 0x90, + 0x12, 0xDA, 0xE0, 0xF9, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0xF1, + 0x07, 0xE0, 0xFF, 0xAE, 0x0C, 0xEE, 0x8F, 0xF0, + 0xA4, 0xC3, 0x9B, 0xFF, 0xE5, 0xF0, 0x9A, 0xFE, + 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xEE, 0x8F, + 0xF0, 0x12, 0x5A, 0x1E, 0x90, 0xF1, 0x07, 0xE0, + 0xFF, 0xAE, 0x0C, 0xEE, 0x8F, 0xF0, 0xA4, 0xFF, + 0xE9, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xD3, 0x9F, 0xE5, 0xF0, 0x64, 0x80, + 0xF8, 0xEC, 0x64, 0x80, 0x98, 0x40, 0x4F, 0x90, + 0xF1, 0x07, 0xE0, 0xFF, 0xAE, 0x0C, 0xEE, 0x8F, + 0xF0, 0xA4, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0x25, + 0xE0, 0x25, 0xE0, 0x24, 0xAE, 0xF5, 0x82, 0xE4, + 0x34, 0x89, 0xF5, 0x83, 0xE5, 0xF0, 0xF0, 0xA3, + 0xEF, 0xF0, 0x80, 0x2A, 0x90, 0x12, 0xDA, 0xE0, + 0xFF, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x52, 0xF5, + 0x82, 0xE4, 0x34, 0x89, 0xF5, 0x83, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xEF, 0x25, 0xE0, 0x25, 0xE0, + 0x24, 0xAE, 0xF5, 0x82, 0xE4, 0x34, 0x89, 0xF5, + 0x83, 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x47, 0x0D, 0x22, + 0x90, 0x13, 0x2E, 0xEF, 0xF0, 0xA9, 0x03, 0xA3, + 0xED, 0xF0, 0x60, 0x03, 0x02, 0x4D, 0xE7, 0xE9, + 0x60, 0x03, 0x02, 0x4D, 0x20, 0x90, 0x13, 0x2E, + 0xE0, 0xB4, 0x14, 0x00, 0x40, 0x03, 0x02, 0x4D, + 0x14, 0x90, 0x4C, 0x60, 0xF8, 0x28, 0x28, 0x73, + 0x02, 0x4C, 0x9C, 0x02, 0x4C, 0xA2, 0x02, 0x4C, + 0xA8, 0x02, 0x4C, 0xAE, 0x02, 0x4C, 0xB4, 0x02, + 0x4C, 0xBA, 0x02, 0x4C, 0xC0, 0x02, 0x4C, 0xC6, + 0x02, 0x4C, 0xCC, 0x02, 0x4C, 0xD2, 0x02, 0x4C, + 0xD8, 0x02, 0x4C, 0xDE, 0x02, 0x4C, 0xE4, 0x02, + 0x4C, 0xEA, 0x02, 0x4C, 0xF0, 0x02, 0x4C, 0xF6, + 0x02, 0x4C, 0xFC, 0x02, 0x4D, 0x02, 0x02, 0x4D, + 0x08, 0x02, 0x4D, 0x0E, 0x43, 0xDB, 0x01, 0x02, + 0x4D, 0xE4, 0x43, 0xDB, 0x02, 0x02, 0x4D, 0xE4, + 0x43, 0xDB, 0x04, 0x02, 0x4D, 0xE4, 0x43, 0xDB, + 0x08, 0x02, 0x4D, 0xE4, 0x43, 0xDB, 0x10, 0x02, + 0x4D, 0xE4, 0x43, 0xDB, 0x20, 0x02, 0x4D, 0xE4, + 0x43, 0xDB, 0x40, 0x02, 0x4D, 0xE4, 0x43, 0xDB, + 0x80, 0x02, 0x4D, 0xE4, 0x43, 0xDA, 0x01, 0x02, + 0x4D, 0xE4, 0x43, 0xDA, 0x02, 0x02, 0x4D, 0xE4, + 0x43, 0xDA, 0x04, 0x02, 0x4D, 0xE4, 0x43, 0xDA, + 0x08, 0x02, 0x4D, 0xE4, 0x43, 0xDA, 0x10, 0x02, + 0x4D, 0xE4, 0x43, 0xDA, 0x20, 0x02, 0x4D, 0xE4, + 0x43, 0xDA, 0x40, 0x02, 0x4D, 0xE4, 0x43, 0xDA, + 0x80, 0x02, 0x4D, 0xE4, 0x43, 0xD9, 0x01, 0x02, + 0x4D, 0xE4, 0x43, 0xD9, 0x02, 0x02, 0x4D, 0xE4, + 0x43, 0xD9, 0x04, 0x02, 0x4D, 0xE4, 0x43, 0xD9, + 0x08, 0x02, 0x4D, 0xE4, 0x85, 0xD9, 0xD9, 0x85, + 0xDA, 0xDA, 0x85, 0xDB, 0xDB, 0x02, 0x4D, 0xE4, + 0xE9, 0x64, 0x01, 0x60, 0x03, 0x02, 0x4D, 0xE4, + 0x90, 0x13, 0x2E, 0xE0, 0xB4, 0x14, 0x00, 0x40, + 0x03, 0x02, 0x4D, 0xDB, 0x90, 0x4D, 0x3B, 0xF8, + 0x28, 0x28, 0x73, 0x02, 0x4D, 0x77, 0x02, 0x4D, + 0x7C, 0x02, 0x4D, 0x81, 0x02, 0x4D, 0x86, 0x02, + 0x4D, 0x8B, 0x02, 0x4D, 0x90, 0x02, 0x4D, 0x95, + 0x02, 0x4D, 0x9A, 0x02, 0x4D, 0x9F, 0x02, 0x4D, + 0xA4, 0x02, 0x4D, 0xA9, 0x02, 0x4D, 0xAE, 0x02, + 0x4D, 0xB3, 0x02, 0x4D, 0xB8, 0x02, 0x4D, 0xBD, + 0x02, 0x4D, 0xC2, 0x02, 0x4D, 0xC7, 0x02, 0x4D, + 0xCC, 0x02, 0x4D, 0xD1, 0x02, 0x4D, 0xD6, 0x43, + 0xDE, 0x01, 0x80, 0x68, 0x43, 0xDE, 0x02, 0x80, + 0x63, 0x43, 0xDE, 0x04, 0x80, 0x5E, 0x43, 0xDE, + 0x08, 0x80, 0x59, 0x43, 0xDE, 0x10, 0x80, 0x54, + 0x43, 0xDE, 0x20, 0x80, 0x4F, 0x43, 0xDE, 0x40, + 0x80, 0x4A, 0x43, 0xDE, 0x80, 0x80, 0x45, 0x43, + 0xDD, 0x01, 0x80, 0x40, 0x43, 0xDD, 0x02, 0x80, + 0x3B, 0x43, 0xDD, 0x04, 0x80, 0x36, 0x43, 0xDD, + 0x08, 0x80, 0x31, 0x43, 0xDD, 0x10, 0x80, 0x2C, + 0x43, 0xDD, 0x20, 0x80, 0x27, 0x43, 0xDD, 0x40, + 0x80, 0x22, 0x43, 0xDD, 0x80, 0x80, 0x1D, 0x43, + 0xDC, 0x01, 0x80, 0x18, 0x43, 0xDC, 0x02, 0x80, + 0x13, 0x43, 0xDC, 0x04, 0x80, 0x0E, 0x43, 0xDC, + 0x08, 0x80, 0x09, 0x85, 0xDC, 0xDC, 0x85, 0xDD, + 0xDD, 0x85, 0xDE, 0xDE, 0x7F, 0x00, 0x22, 0x90, + 0x13, 0x2F, 0xE0, 0x64, 0x01, 0x60, 0x03, 0x02, + 0x4F, 0x92, 0xE9, 0x60, 0x03, 0x02, 0x4E, 0xCB, + 0x90, 0x13, 0x2E, 0xE0, 0xB4, 0x14, 0x00, 0x40, + 0x03, 0x02, 0x4E, 0xBF, 0x90, 0x4E, 0x0B, 0xF8, + 0x28, 0x28, 0x73, 0x02, 0x4E, 0x47, 0x02, 0x4E, + 0x4D, 0x02, 0x4E, 0x53, 0x02, 0x4E, 0x59, 0x02, + 0x4E, 0x5F, 0x02, 0x4E, 0x65, 0x02, 0x4E, 0x6B, + 0x02, 0x4E, 0x71, 0x02, 0x4E, 0x77, 0x02, 0x4E, + 0x7D, 0x02, 0x4E, 0x83, 0x02, 0x4E, 0x89, 0x02, + 0x4E, 0x8F, 0x02, 0x4E, 0x95, 0x02, 0x4E, 0x9B, + 0x02, 0x4E, 0xA1, 0x02, 0x4E, 0xA7, 0x02, 0x4E, + 0xAD, 0x02, 0x4E, 0xB3, 0x02, 0x4E, 0xB9, 0x53, + 0xDB, 0xFE, 0x02, 0x4F, 0x8F, 0x53, 0xDB, 0xFD, + 0x02, 0x4F, 0x8F, 0x53, 0xDB, 0xFB, 0x02, 0x4F, + 0x8F, 0x53, 0xDB, 0xF7, 0x02, 0x4F, 0x8F, 0x53, + 0xDB, 0xEF, 0x02, 0x4F, 0x8F, 0x53, 0xDB, 0xDF, + 0x02, 0x4F, 0x8F, 0x53, 0xDB, 0xBF, 0x02, 0x4F, + 0x8F, 0x53, 0xDB, 0x7F, 0x02, 0x4F, 0x8F, 0x53, + 0xDA, 0xFE, 0x02, 0x4F, 0x8F, 0x53, 0xDA, 0xFD, + 0x02, 0x4F, 0x8F, 0x53, 0xDA, 0xFB, 0x02, 0x4F, + 0x8F, 0x53, 0xDA, 0xF7, 0x02, 0x4F, 0x8F, 0x53, + 0xDA, 0xEF, 0x02, 0x4F, 0x8F, 0x53, 0xDA, 0xDF, + 0x02, 0x4F, 0x8F, 0x53, 0xDA, 0xBF, 0x02, 0x4F, + 0x8F, 0x53, 0xDA, 0x7F, 0x02, 0x4F, 0x8F, 0x53, + 0xD9, 0xFE, 0x02, 0x4F, 0x8F, 0x53, 0xD9, 0xFD, + 0x02, 0x4F, 0x8F, 0x53, 0xD9, 0xFB, 0x02, 0x4F, + 0x8F, 0x53, 0xD9, 0xF7, 0x02, 0x4F, 0x8F, 0x85, + 0xD9, 0xD9, 0x85, 0xDA, 0xDA, 0x85, 0xDB, 0xDB, + 0x02, 0x4F, 0x8F, 0xE9, 0x64, 0x01, 0x60, 0x03, + 0x02, 0x4F, 0x8F, 0x90, 0x13, 0x2E, 0xE0, 0xB4, + 0x14, 0x00, 0x40, 0x03, 0x02, 0x4F, 0x86, 0x90, + 0x4E, 0xE6, 0xF8, 0x28, 0x28, 0x73, 0x02, 0x4F, + 0x22, 0x02, 0x4F, 0x27, 0x02, 0x4F, 0x2C, 0x02, + 0x4F, 0x31, 0x02, 0x4F, 0x36, 0x02, 0x4F, 0x3B, + 0x02, 0x4F, 0x40, 0x02, 0x4F, 0x45, 0x02, 0x4F, + 0x4A, 0x02, 0x4F, 0x4F, 0x02, 0x4F, 0x54, 0x02, + 0x4F, 0x59, 0x02, 0x4F, 0x5E, 0x02, 0x4F, 0x63, + 0x02, 0x4F, 0x68, 0x02, 0x4F, 0x6D, 0x02, 0x4F, + 0x72, 0x02, 0x4F, 0x77, 0x02, 0x4F, 0x7C, 0x02, + 0x4F, 0x81, 0x53, 0xDE, 0xFE, 0x80, 0x68, 0x53, + 0xDE, 0xFD, 0x80, 0x63, 0x53, 0xDE, 0xFB, 0x80, + 0x5E, 0x53, 0xDE, 0xF7, 0x80, 0x59, 0x53, 0xDE, + 0xEF, 0x80, 0x54, 0x53, 0xDE, 0xDF, 0x80, 0x4F, + 0x53, 0xDE, 0xBF, 0x80, 0x4A, 0x53, 0xDE, 0x7F, + 0x80, 0x45, 0x53, 0xDD, 0xFE, 0x80, 0x40, 0x53, + 0xDD, 0xFD, 0x80, 0x3B, 0x53, 0xDD, 0xFB, 0x80, + 0x36, 0x53, 0xDD, 0xF7, 0x80, 0x31, 0x53, 0xDD, + 0xEF, 0x80, 0x2C, 0x53, 0xDD, 0xDF, 0x80, 0x27, + 0x53, 0xDD, 0xBF, 0x80, 0x22, 0x53, 0xDD, 0x7F, + 0x80, 0x1D, 0x53, 0xDC, 0xFE, 0x80, 0x18, 0x53, + 0xDC, 0xFD, 0x80, 0x13, 0x53, 0xDC, 0xFB, 0x80, + 0x0E, 0x53, 0xDC, 0xF7, 0x80, 0x09, 0x85, 0xDC, + 0xDC, 0x85, 0xDD, 0xDD, 0x85, 0xDE, 0xDE, 0x7F, + 0x00, 0x22, 0x90, 0x13, 0x2F, 0xE0, 0x64, 0x02, + 0x60, 0x03, 0x02, 0x51, 0x6E, 0xE9, 0x60, 0x03, + 0x02, 0x50, 0x85, 0x90, 0x13, 0x2E, 0xE0, 0xB4, + 0x14, 0x00, 0x40, 0x03, 0x02, 0x50, 0x80, 0x90, + 0x4F, 0xB6, 0xF8, 0x28, 0x28, 0x73, 0x02, 0x4F, + 0xF2, 0x02, 0x4F, 0xFA, 0x02, 0x50, 0x02, 0x02, + 0x50, 0x09, 0x02, 0x50, 0x10, 0x02, 0x50, 0x17, + 0x02, 0x50, 0x1E, 0x02, 0x50, 0x25, 0x02, 0x50, + 0x2C, 0x02, 0x50, 0x33, 0x02, 0x50, 0x3A, 0x02, + 0x50, 0x41, 0x02, 0x50, 0x48, 0x02, 0x50, 0x4F, + 0x02, 0x50, 0x56, 0x02, 0x50, 0x5D, 0x02, 0x50, + 0x64, 0x02, 0x50, 0x6B, 0x02, 0x50, 0x72, 0x02, + 0x50, 0x79, 0xE5, 0xDB, 0x54, 0x01, 0xFE, 0x02, + 0x50, 0x82, 0xE5, 0xDB, 0x54, 0x02, 0xFE, 0x02, + 0x50, 0x82, 0xE5, 0xDB, 0x54, 0x04, 0xFE, 0x80, + 0x79, 0xE5, 0xDB, 0x54, 0x08, 0xFE, 0x80, 0x72, + 0xE5, 0xDB, 0x54, 0x10, 0xFE, 0x80, 0x6B, 0xE5, + 0xDB, 0x54, 0x20, 0xFE, 0x80, 0x64, 0xE5, 0xDB, + 0x54, 0x40, 0xFE, 0x80, 0x5D, 0xE5, 0xDB, 0x54, + 0x80, 0xFE, 0x80, 0x56, 0xE5, 0xDA, 0x54, 0x01, + 0xFE, 0x80, 0x4F, 0xE5, 0xDA, 0x54, 0x02, 0xFE, + 0x80, 0x48, 0xE5, 0xDA, 0x54, 0x04, 0xFE, 0x80, + 0x41, 0xE5, 0xDA, 0x54, 0x08, 0xFE, 0x80, 0x3A, + 0xE5, 0xDA, 0x54, 0x10, 0xFE, 0x80, 0x33, 0xE5, + 0xDA, 0x54, 0x20, 0xFE, 0x80, 0x2C, 0xE5, 0xDA, + 0x54, 0x40, 0xFE, 0x80, 0x25, 0xE5, 0xDA, 0x54, + 0x80, 0xFE, 0x80, 0x1E, 0xE5, 0xD9, 0x54, 0x01, + 0xFE, 0x80, 0x17, 0xE5, 0xD9, 0x54, 0x02, 0xFE, + 0x80, 0x10, 0xE5, 0xD9, 0x54, 0x04, 0xFE, 0x80, + 0x09, 0xE5, 0xD9, 0x54, 0x08, 0xFE, 0x80, 0x02, + 0xE4, 0xFE, 0xAF, 0x06, 0x22, 0xE9, 0x64, 0x01, + 0x60, 0x03, 0x02, 0x51, 0x6E, 0x90, 0x13, 0x2E, + 0xE0, 0xB4, 0x14, 0x00, 0x40, 0x03, 0x02, 0x51, + 0x6A, 0x90, 0x50, 0xA0, 0xF8, 0x28, 0x28, 0x73, + 0x02, 0x50, 0xDC, 0x02, 0x50, 0xE4, 0x02, 0x50, + 0xEC, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xFA, 0x02, + 0x51, 0x01, 0x02, 0x51, 0x08, 0x02, 0x51, 0x0F, + 0x02, 0x51, 0x16, 0x02, 0x51, 0x1D, 0x02, 0x51, + 0x24, 0x02, 0x51, 0x2B, 0x02, 0x51, 0x32, 0x02, + 0x51, 0x39, 0x02, 0x51, 0x40, 0x02, 0x51, 0x47, + 0x02, 0x51, 0x4E, 0x02, 0x51, 0x55, 0x02, 0x51, + 0x5C, 0x02, 0x51, 0x63, 0xE5, 0xDE, 0x54, 0x01, + 0xFE, 0x02, 0x51, 0x6C, 0xE5, 0xDE, 0x54, 0x02, + 0xFE, 0x02, 0x51, 0x6C, 0xE5, 0xDE, 0x54, 0x04, + 0xFE, 0x80, 0x79, 0xE5, 0xDE, 0x54, 0x08, 0xFE, + 0x80, 0x72, 0xE5, 0xDE, 0x54, 0x10, 0xFE, 0x80, + 0x6B, 0xE5, 0xDE, 0x54, 0x20, 0xFE, 0x80, 0x64, + 0xE5, 0xDE, 0x54, 0x40, 0xFE, 0x80, 0x5D, 0xE5, + 0xDE, 0x54, 0x80, 0xFE, 0x80, 0x56, 0xE5, 0xDD, + 0x54, 0x01, 0xFE, 0x80, 0x4F, 0xE5, 0xDD, 0x54, + 0x02, 0xFE, 0x80, 0x48, 0xE5, 0xDD, 0x54, 0x04, + 0xFE, 0x80, 0x41, 0xE5, 0xDD, 0x54, 0x08, 0xFE, + 0x80, 0x3A, 0xE5, 0xDD, 0x54, 0x10, 0xFE, 0x80, + 0x33, 0xE5, 0xDD, 0x54, 0x20, 0xFE, 0x80, 0x2C, + 0xE5, 0xDD, 0x54, 0x40, 0xFE, 0x80, 0x25, 0xE5, + 0xDD, 0x54, 0x80, 0xFE, 0x80, 0x1E, 0xE5, 0xDC, + 0x54, 0x01, 0xFE, 0x80, 0x17, 0xE5, 0xDC, 0x54, + 0x02, 0xFE, 0x80, 0x10, 0xE5, 0xDC, 0x54, 0x04, + 0xFE, 0x80, 0x09, 0xE5, 0xDC, 0x54, 0x08, 0xFE, + 0x80, 0x02, 0xE4, 0xFE, 0xAF, 0x06, 0x22, 0x90, + 0x19, 0x40, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x40, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x41, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x41, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x42, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x42, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x43, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x43, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x44, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x44, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x45, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x45, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x46, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x46, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x47, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x48, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x49, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x4A, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x4B, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x4C, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x4D, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x4E, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x4F, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x50, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x51, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x52, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x53, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x54, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x55, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x56, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x57, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x58, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x58, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x59, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x59, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x5A, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x5A, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x5B, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x5B, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x5C, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x5C, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x5D, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x5D, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x5E, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x5E, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x5F, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x5F, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x60, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x60, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x61, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x61, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x62, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x62, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x63, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x63, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x64, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x64, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x65, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x65, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x66, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x66, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x67, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x68, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x69, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x6A, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x6B, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x6C, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x6D, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x6E, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x6F, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x70, 0x74, 0x01, 0xF0, 0x90, 0x19, 0x71, + 0x74, 0x01, 0xF0, 0x90, 0x19, 0x72, 0x74, 0x01, + 0xF0, 0x90, 0x19, 0x73, 0x74, 0x01, 0xF0, 0x90, + 0x19, 0x74, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x75, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x76, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x77, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x78, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x78, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x79, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x79, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x7A, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x7A, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x7B, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x7B, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x7C, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x7C, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x7D, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x7D, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x7E, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x7E, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x7F, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x7F, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x80, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x80, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x81, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x81, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x82, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x82, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x83, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x83, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x84, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x84, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x85, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x85, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x86, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x86, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x87, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x87, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x88, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x89, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x8A, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x8B, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x8C, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x8D, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x8E, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x8F, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x90, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x91, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x92, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x93, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x94, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x95, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x96, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x97, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x98, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x98, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x99, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x99, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x9A, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x9A, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x9B, 0x74, 0x02, 0xF0, 0x80, + 0x06, 0x90, 0x19, 0x9B, 0x74, 0x03, 0xF0, 0x90, + 0x19, 0x9C, 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, + 0x19, 0x9C, 0x74, 0x03, 0xF0, 0x90, 0x19, 0x9D, + 0x74, 0x02, 0xF0, 0x80, 0x06, 0x90, 0x19, 0x9D, + 0x74, 0x03, 0xF0, 0x90, 0x19, 0x9E, 0x74, 0x02, + 0xF0, 0x80, 0x06, 0x90, 0x19, 0x9E, 0x74, 0x03, + 0xF0, 0x90, 0x19, 0x9F, 0x74, 0x02, 0xF0, 0x22, + 0x90, 0x19, 0x9F, 0x74, 0x03, 0xF0, 0x22, 0xE4, + 0x90, 0x88, 0xB0, 0xF0, 0x90, 0x12, 0xDA, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0xC3, 0x94, 0x50, + 0x50, 0x14, 0x74, 0x60, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x88, 0xF5, 0x83, 0xE4, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0x04, 0xF0, 0x80, 0xE2, 0xD2, 0xB3, + 0x30, 0xB3, 0x05, 0x75, 0x9E, 0x55, 0x80, 0xF8, + 0xC2, 0xDB, 0xC2, 0x0E, 0xE4, 0x90, 0x12, 0xDA, + 0xF0, 0x90, 0xF2, 0xA8, 0xE0, 0xFF, 0x90, 0x12, + 0xDA, 0xE0, 0xFE, 0xC3, 0x9F, 0x40, 0x03, 0x02, + 0x58, 0x78, 0x74, 0x00, 0x2E, 0xF5, 0x82, 0xE4, + 0x34, 0x50, 0xF5, 0x83, 0xE0, 0xB5, 0x06, 0x06, + 0x90, 0x88, 0xB0, 0xE0, 0x04, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, + 0x02, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x18, 0xF5, + 0x83, 0xE0, 0x90, 0x88, 0xC3, 0xF0, 0x75, 0xF0, + 0x04, 0xEF, 0xA4, 0x24, 0x01, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x18, 0xF5, 0x83, 0xE0, 0x90, 0x88, + 0xC4, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x75, + 0xF0, 0x04, 0xA4, 0x24, 0x00, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x18, 0xF5, 0x83, 0xE0, 0x90, 0x88, + 0xC5, 0xF0, 0x75, 0xF0, 0x04, 0xEF, 0xA4, 0x24, + 0x02, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x30, 0xF5, + 0x83, 0xE0, 0x90, 0x88, 0xC7, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, + 0x01, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x30, 0xF5, + 0x83, 0xE0, 0x90, 0x88, 0xC8, 0xF0, 0x75, 0xF0, + 0x04, 0xEF, 0xA4, 0x24, 0x00, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x30, 0xF5, 0x83, 0xE0, 0x90, 0x88, + 0xC9, 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x75, + 0xF0, 0x04, 0xA4, 0x24, 0x52, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x82, 0xF5, 0x83, 0xE0, 0x90, 0x88, + 0xCE, 0xF0, 0x75, 0xF0, 0x04, 0xEF, 0xA4, 0x24, + 0x51, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x82, 0xF5, + 0x83, 0xE0, 0x90, 0x88, 0xCF, 0xF0, 0x90, 0x12, + 0xDA, 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, + 0x50, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x82, 0xF5, + 0x83, 0xE0, 0x90, 0x88, 0xD0, 0xF0, 0x74, 0x00, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x50, 0xF5, 0x83, + 0xE0, 0x24, 0x60, 0xF5, 0x82, 0xE4, 0x34, 0x88, + 0xF5, 0x83, 0xE0, 0x60, 0x03, 0x02, 0x57, 0x45, + 0x90, 0x12, 0xDA, 0xE0, 0xFB, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x50, 0xF5, 0x83, 0xE0, 0x24, + 0x60, 0xF5, 0x82, 0xE4, 0x34, 0x88, 0xF5, 0x83, + 0x74, 0x01, 0xF0, 0x90, 0x88, 0xC2, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x74, 0x00, 0x2B, 0xF5, 0x82, 0xE4, 0x34, + 0x50, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x04, 0xA4, + 0x24, 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x84, + 0xF5, 0x83, 0x12, 0x5B, 0x88, 0x90, 0x88, 0xC6, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x90, 0x12, 0xDA, 0xE0, 0xFB, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x50, 0xF5, + 0x83, 0xE0, 0x75, 0xF0, 0x04, 0xA4, 0x24, 0x40, + 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x85, 0xF5, 0x83, + 0x12, 0x5B, 0x88, 0x90, 0x88, 0xCD, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x74, 0x00, 0x2B, 0xF5, 0x82, 0xE4, 0x34, + 0x50, 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x04, 0xA4, + 0x24, 0x80, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x86, + 0xF5, 0x83, 0x12, 0x5B, 0x88, 0x90, 0x12, 0xDA, + 0xE0, 0xFD, 0x25, 0xE0, 0x24, 0x53, 0xF5, 0x82, + 0xE4, 0x34, 0x50, 0xF5, 0x83, 0xE0, 0xFE, 0xED, + 0x25, 0xE0, 0x24, 0x52, 0xF5, 0x82, 0xE4, 0x34, + 0x50, 0xF5, 0x83, 0xE0, 0x7C, 0x00, 0x24, 0x00, + 0xFF, 0xEC, 0x3E, 0xFE, 0x90, 0x12, 0xDA, 0xE0, + 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x50, 0xF5, + 0x83, 0xE0, 0x25, 0xE0, 0x24, 0xC0, 0xF5, 0x82, + 0xE4, 0x34, 0x87, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0x02, 0x58, 0x6F, 0x90, 0x12, 0xDA, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x50, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x04, 0xA4, 0x24, + 0x00, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x84, 0xF5, + 0x83, 0xC0, 0x83, 0xC0, 0x82, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x88, 0xC2, 0xE0, 0xF8, 0xA3, 0xE0, 0xF9, + 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xEF, 0x2B, + 0xFF, 0xEE, 0x3A, 0xFE, 0xED, 0x39, 0xFD, 0xEC, + 0x38, 0xFC, 0xD0, 0x82, 0xD0, 0x83, 0x12, 0x5B, + 0x88, 0x90, 0x12, 0xDA, 0xE0, 0x24, 0x00, 0xF5, + 0x82, 0xE4, 0x34, 0x50, 0xF5, 0x83, 0xE0, 0x75, + 0xF0, 0x04, 0xA4, 0x24, 0x40, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x85, 0xF5, 0x83, 0xC0, 0x83, 0xC0, + 0x82, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x88, 0xC6, 0xE0, + 0xF8, 0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, + 0xE0, 0xFB, 0xEF, 0x2B, 0xFF, 0xEE, 0x3A, 0xFE, + 0xED, 0x39, 0xFD, 0xEC, 0x38, 0xFC, 0xD0, 0x82, + 0xD0, 0x83, 0x12, 0x5B, 0x88, 0x90, 0x12, 0xDA, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x50, + 0xF5, 0x83, 0xE0, 0x75, 0xF0, 0x04, 0xA4, 0x24, + 0x80, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x86, 0xF5, + 0x83, 0xC0, 0x83, 0xC0, 0x82, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x90, 0x88, 0xCD, 0xE0, 0xF8, 0xA3, 0xE0, 0xF9, + 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xEF, 0x2B, + 0xFF, 0xEE, 0x3A, 0xFE, 0xED, 0x39, 0xFD, 0xEC, + 0x38, 0xFC, 0xD0, 0x82, 0xD0, 0x83, 0x12, 0x5B, + 0x88, 0x90, 0x12, 0xDA, 0xE0, 0xFD, 0x25, 0xE0, + 0x24, 0x53, 0xF5, 0x82, 0xE4, 0x34, 0x50, 0xF5, + 0x83, 0xE0, 0xFE, 0xED, 0x25, 0xE0, 0x24, 0x52, + 0xF5, 0x82, 0xE4, 0x34, 0x50, 0xF5, 0x83, 0xE0, + 0x7C, 0x00, 0x24, 0x00, 0xFF, 0xEC, 0x3E, 0xFE, + 0x90, 0x12, 0xDA, 0xE0, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0x50, 0xF5, 0x83, 0xE0, 0x25, 0xE0, + 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, 0x87, 0xF5, + 0x83, 0xEE, 0x8F, 0xF0, 0x12, 0x5A, 0x1E, 0x90, + 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x55, 0x59, + 0x22, 0xE7, 0x09, 0xF6, 0x08, 0xDF, 0xFA, 0x80, + 0x46, 0xE7, 0x09, 0xF2, 0x08, 0xDF, 0xFA, 0x80, + 0x3E, 0x88, 0x82, 0x8C, 0x83, 0xE7, 0x09, 0xF0, + 0xA3, 0xDF, 0xFA, 0x80, 0x32, 0xE3, 0x09, 0xF6, + 0x08, 0xDF, 0xFA, 0x80, 0x78, 0xE3, 0x09, 0xF2, + 0x08, 0xDF, 0xFA, 0x80, 0x70, 0x88, 0x82, 0x8C, + 0x83, 0xE3, 0x09, 0xF0, 0xA3, 0xDF, 0xFA, 0x80, + 0x64, 0x89, 0x82, 0x8A, 0x83, 0xE0, 0xA3, 0xF6, + 0x08, 0xDF, 0xFA, 0x80, 0x58, 0x89, 0x82, 0x8A, + 0x83, 0xE0, 0xA3, 0xF2, 0x08, 0xDF, 0xFA, 0x80, + 0x4C, 0x80, 0xD2, 0x80, 0xFA, 0x80, 0xC6, 0x80, + 0xD4, 0x80, 0x69, 0x80, 0xF2, 0x80, 0x33, 0x80, + 0x10, 0x80, 0xA6, 0x80, 0xEA, 0x80, 0x9A, 0x80, + 0xA8, 0x80, 0xDA, 0x80, 0xE2, 0x80, 0xCA, 0x80, + 0x33, 0x89, 0x82, 0x8A, 0x83, 0xEC, 0xFA, 0xE4, + 0x93, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCC, 0xC5, + 0x83, 0xCC, 0xF0, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, + 0xCC, 0xC5, 0x83, 0xCC, 0xDF, 0xE9, 0xDE, 0xE7, + 0x80, 0x0D, 0x89, 0x82, 0x8A, 0x83, 0xE4, 0x93, + 0xA3, 0xF6, 0x08, 0xDF, 0xF9, 0xEC, 0xFA, 0xA9, + 0xF0, 0xED, 0xFB, 0x22, 0x89, 0x82, 0x8A, 0x83, + 0xEC, 0xFA, 0xE0, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, + 0xCC, 0xC5, 0x83, 0xCC, 0xF0, 0xA3, 0xC8, 0xC5, + 0x82, 0xC8, 0xCC, 0xC5, 0x83, 0xCC, 0xDF, 0xEA, + 0xDE, 0xE8, 0x80, 0xDB, 0x89, 0x82, 0x8A, 0x83, + 0xE4, 0x93, 0xA3, 0xF2, 0x08, 0xDF, 0xF9, 0x80, + 0xCC, 0x88, 0xF0, 0xEF, 0x60, 0x01, 0x0E, 0x4E, + 0x60, 0xC3, 0x88, 0xF0, 0xED, 0x24, 0x02, 0xB4, + 0x04, 0x00, 0x50, 0xB9, 0xF5, 0x82, 0xEB, 0x24, + 0x02, 0xB4, 0x04, 0x00, 0x50, 0xAF, 0x23, 0x23, + 0x45, 0x82, 0x23, 0x90, 0x58, 0xC9, 0x73, 0xBB, + 0x01, 0x06, 0x89, 0x82, 0x8A, 0x83, 0xF0, 0x22, + 0x50, 0x02, 0xF7, 0x22, 0xBB, 0xFE, 0x01, 0xF3, + 0x22, 0xEF, 0x8D, 0xF0, 0xA4, 0xA8, 0xF0, 0xCF, + 0x8C, 0xF0, 0xA4, 0x28, 0xCE, 0x8D, 0xF0, 0xA4, + 0x2E, 0xFE, 0x22, 0xBC, 0x00, 0x0B, 0xBE, 0x00, + 0x29, 0xEF, 0x8D, 0xF0, 0x84, 0xFF, 0xAD, 0xF0, + 0x22, 0xE4, 0xCC, 0xF8, 0x75, 0xF0, 0x08, 0xEF, + 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xEC, 0x33, 0xFC, + 0xEE, 0x9D, 0xEC, 0x98, 0x40, 0x05, 0xFC, 0xEE, + 0x9D, 0xFE, 0x0F, 0xD5, 0xF0, 0xE9, 0xE4, 0xCE, + 0xFD, 0x22, 0xED, 0xF8, 0xF5, 0xF0, 0xEE, 0x84, + 0x20, 0xD2, 0x1C, 0xFE, 0xAD, 0xF0, 0x75, 0xF0, + 0x08, 0xEF, 0x2F, 0xFF, 0xED, 0x33, 0xFD, 0x40, + 0x07, 0x98, 0x50, 0x06, 0xD5, 0xF0, 0xF2, 0x22, + 0xC3, 0x98, 0xFD, 0x0F, 0xD5, 0xF0, 0xEA, 0x22, + 0xC2, 0xD5, 0xEC, 0x30, 0xE7, 0x09, 0xB2, 0xD5, + 0xE4, 0xC3, 0x9D, 0xFD, 0xE4, 0x9C, 0xFC, 0xEE, + 0x30, 0xE7, 0x15, 0xB2, 0xD5, 0xE4, 0xC3, 0x9F, + 0xFF, 0xE4, 0x9E, 0xFE, 0x12, 0x59, 0x93, 0xC3, + 0xE4, 0x9D, 0xFD, 0xE4, 0x9C, 0xFC, 0x80, 0x03, + 0x12, 0x59, 0x93, 0x30, 0xD5, 0x07, 0xC3, 0xE4, + 0x9F, 0xFF, 0xE4, 0x9E, 0xFE, 0x22, 0xC5, 0xF0, + 0xF8, 0xA3, 0xE0, 0x28, 0xF0, 0xC5, 0xF0, 0xF8, + 0xE5, 0x82, 0x15, 0x82, 0x70, 0x02, 0x15, 0x83, + 0xE0, 0x38, 0xF0, 0x22, 0xE8, 0x8F, 0xF0, 0xA4, + 0xCC, 0x8B, 0xF0, 0xA4, 0x2C, 0xFC, 0xE9, 0x8E, + 0xF0, 0xA4, 0x2C, 0xFC, 0x8A, 0xF0, 0xED, 0xA4, + 0x2C, 0xFC, 0xEA, 0x8E, 0xF0, 0xA4, 0xCD, 0xA8, + 0xF0, 0x8B, 0xF0, 0xA4, 0x2D, 0xCC, 0x38, 0x25, + 0xF0, 0xFD, 0xE9, 0x8F, 0xF0, 0xA4, 0x2C, 0xCD, + 0x35, 0xF0, 0xFC, 0xEB, 0x8E, 0xF0, 0xA4, 0xFE, + 0xA9, 0xF0, 0xEB, 0x8F, 0xF0, 0xA4, 0xCF, 0xC5, + 0xF0, 0x2E, 0xCD, 0x39, 0xFE, 0xE4, 0x3C, 0xFC, + 0xEA, 0xA4, 0x2D, 0xCE, 0x35, 0xF0, 0xFD, 0xE4, + 0x3C, 0xFC, 0x22, 0x75, 0xF0, 0x08, 0x75, 0x82, + 0x00, 0xEF, 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xCD, + 0x33, 0xCD, 0xCC, 0x33, 0xCC, 0xC5, 0x82, 0x33, + 0xC5, 0x82, 0x9B, 0xED, 0x9A, 0xEC, 0x99, 0xE5, + 0x82, 0x98, 0x40, 0x0C, 0xF5, 0x82, 0xEE, 0x9B, + 0xFE, 0xED, 0x9A, 0xFD, 0xEC, 0x99, 0xFC, 0x0F, + 0xD5, 0xF0, 0xD6, 0xE4, 0xCE, 0xFB, 0xE4, 0xCD, + 0xFA, 0xE4, 0xCC, 0xF9, 0xA8, 0x82, 0x22, 0xB8, + 0x00, 0xC1, 0xB9, 0x00, 0x59, 0xBA, 0x00, 0x2D, + 0xEC, 0x8B, 0xF0, 0x84, 0xCF, 0xCE, 0xCD, 0xFC, + 0xE5, 0xF0, 0xCB, 0xF9, 0x78, 0x18, 0xEF, 0x2F, + 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0xEC, + 0x33, 0xFC, 0xEB, 0x33, 0xFB, 0x10, 0xD7, 0x03, + 0x99, 0x40, 0x04, 0xEB, 0x99, 0xFB, 0x0F, 0xD8, + 0xE5, 0xE4, 0xF9, 0xFA, 0x22, 0x78, 0x18, 0xEF, + 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, + 0xEC, 0x33, 0xFC, 0xC9, 0x33, 0xC9, 0x10, 0xD7, + 0x05, 0x9B, 0xE9, 0x9A, 0x40, 0x07, 0xEC, 0x9B, + 0xFC, 0xE9, 0x9A, 0xF9, 0x0F, 0xD8, 0xE0, 0xE4, + 0xC9, 0xFA, 0xE4, 0xCC, 0xFB, 0x22, 0x75, 0xF0, + 0x10, 0xEF, 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xED, + 0x33, 0xFD, 0xCC, 0x33, 0xCC, 0xC8, 0x33, 0xC8, + 0x10, 0xD7, 0x07, 0x9B, 0xEC, 0x9A, 0xE8, 0x99, + 0x40, 0x0A, 0xED, 0x9B, 0xFD, 0xEC, 0x9A, 0xFC, + 0xE8, 0x99, 0xF8, 0x0F, 0xD5, 0xF0, 0xDA, 0xE4, + 0xCD, 0xFB, 0xE4, 0xCC, 0xFA, 0xE4, 0xC8, 0xF9, + 0x22, 0xEB, 0x9F, 0xF5, 0xF0, 0xEA, 0x9E, 0x42, + 0xF0, 0xE9, 0x9D, 0x42, 0xF0, 0xE8, 0x9C, 0x45, + 0xF0, 0x22, 0xE8, 0x60, 0x0F, 0xEC, 0xC3, 0x13, + 0xFC, 0xED, 0x13, 0xFD, 0xEE, 0x13, 0xFE, 0xEF, + 0x13, 0xFF, 0xD8, 0xF1, 0x22, 0xE8, 0x60, 0x0F, + 0xEF, 0xC3, 0x33, 0xFF, 0xEE, 0x33, 0xFE, 0xED, + 0x33, 0xFD, 0xEC, 0x33, 0xFC, 0xD8, 0xF1, 0x22, + 0xEC, 0xF0, 0xA3, 0xED, 0xF0, 0xA3, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x22, 0xA8, 0x82, 0x85, 0x83, + 0xF0, 0xD0, 0x83, 0xD0, 0x82, 0x12, 0x5B, 0xAB, + 0x12, 0x5B, 0xAB, 0x12, 0x5B, 0xAB, 0x12, 0x5B, + 0xAB, 0xE4, 0x73, 0xE4, 0x93, 0xA3, 0xC5, 0x83, + 0xC5, 0xF0, 0xC5, 0x83, 0xC8, 0xC5, 0x82, 0xC8, + 0xF0, 0xA3, 0xC5, 0x83, 0xC5, 0xF0, 0xC5, 0x83, + 0xC8, 0xC5, 0x82, 0xC8, 0x22, 0xA4, 0x25, 0x82, + 0xF5, 0x82, 0xE5, 0xF0, 0x35, 0x83, 0xF5, 0x83, + 0x22, 0x75, 0x81, 0x64, 0xD2, 0xAF, 0xD2, 0xAE, + 0x12, 0x00, 0x40, 0x12, 0x7F, 0xF0, 0x7F, 0x64, + 0x7E, 0x00, 0x12, 0x67, 0xEE, 0x12, 0x78, 0x00, + 0x12, 0x51, 0x6F, 0xC2, 0x12, 0xE4, 0x90, 0x12, + 0x5B, 0xF0, 0xC2, 0x01, 0x75, 0x9E, 0x55, 0x20, + 0x0A, 0x03, 0x02, 0x5D, 0xFE, 0xC2, 0x0A, 0x85, + 0x0E, 0x09, 0x85, 0x0F, 0x0A, 0xE4, 0xF5, 0x0E, + 0xF5, 0x0F, 0x20, 0x12, 0x03, 0x12, 0x78, 0xE5, + 0x30, 0x03, 0x06, 0x12, 0x27, 0xB1, 0x02, 0x5D, + 0xFE, 0x20, 0x12, 0x03, 0x02, 0x5C, 0xB2, 0xE4, + 0x90, 0xF1, 0x0A, 0xF0, 0x90, 0xF1, 0x1B, 0xF0, + 0x90, 0xF1, 0x1F, 0x74, 0x0F, 0xF0, 0x90, 0xF1, + 0x22, 0x74, 0x05, 0xF0, 0xE4, 0x90, 0xF1, 0x1C, + 0xF0, 0x90, 0xF1, 0x06, 0x04, 0xF0, 0xA3, 0xF0, + 0x90, 0xF1, 0x0E, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, + 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0xA3, 0xF0, 0xA3, 0x74, 0x05, 0xF0, 0xE4, + 0xFD, 0xFC, 0xED, 0x25, 0xE0, 0xFE, 0xEC, 0x33, + 0x90, 0x12, 0xD8, 0xF0, 0xA3, 0xCE, 0xF0, 0x90, + 0x12, 0xD8, 0xE0, 0xFE, 0xA3, 0xE0, 0x7B, 0x01, + 0x7A, 0xF0, 0x79, 0x01, 0x24, 0x01, 0xF9, 0x74, + 0xF0, 0x3E, 0xFA, 0xE4, 0x12, 0x59, 0x6F, 0x04, + 0x29, 0xF9, 0xE4, 0x3A, 0xFA, 0x74, 0x08, 0x12, + 0x59, 0x6F, 0x0D, 0xBD, 0x00, 0x01, 0x0C, 0xED, + 0x64, 0x60, 0x4C, 0x70, 0xC5, 0x12, 0x5E, 0xE7, + 0x90, 0x12, 0x5B, 0xE0, 0x04, 0xF0, 0xE0, 0x64, + 0x60, 0x60, 0x03, 0x02, 0x5D, 0xFE, 0xF0, 0x90, + 0x8F, 0xFD, 0x74, 0xBB, 0xF0, 0xC2, 0x12, 0x02, + 0x5D, 0xFE, 0x90, 0x12, 0xBF, 0xE0, 0xFF, 0x12, + 0x63, 0xD9, 0x12, 0x27, 0xF9, 0xA2, 0xD9, 0xE4, + 0x33, 0x90, 0x8E, 0x01, 0xF0, 0x90, 0xF0, 0xC4, + 0x74, 0x01, 0xF0, 0x30, 0x15, 0x09, 0x12, 0x28, + 0x14, 0x12, 0x55, 0x1F, 0x12, 0x61, 0x81, 0x12, + 0x00, 0x4F, 0x12, 0x46, 0xE2, 0x12, 0x35, 0x80, + 0x90, 0x3F, 0xFD, 0xE0, 0xB4, 0x02, 0x19, 0xE5, + 0x91, 0x30, 0xE4, 0x05, 0x75, 0x9E, 0x55, 0x80, + 0xF6, 0x90, 0x8F, 0xF0, 0xE0, 0xD3, 0x94, 0x00, + 0x40, 0x04, 0xC2, 0x84, 0x80, 0x02, 0xD2, 0x84, + 0xE5, 0x91, 0x30, 0xE4, 0x03, 0x02, 0x5D, 0xEA, + 0x90, 0x8F, 0xF0, 0xE0, 0xD3, 0x94, 0x00, 0x40, + 0x7C, 0xE4, 0x90, 0x12, 0x63, 0xF0, 0xA3, 0xF0, + 0xB2, 0x14, 0x75, 0x8A, 0x8B, 0xF5, 0x8B, 0x30, + 0x14, 0x2C, 0x90, 0x12, 0xD5, 0xF0, 0x90, 0x12, + 0xD5, 0xE0, 0xFF, 0x24, 0x00, 0xF5, 0x82, 0xE4, + 0x34, 0x8F, 0xF5, 0x83, 0xE0, 0xFE, 0x74, 0x00, + 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x8B, 0xF5, 0x83, + 0xEE, 0xF0, 0x90, 0x12, 0xD5, 0xE0, 0x04, 0xF0, + 0xE0, 0xB4, 0x3C, 0xDA, 0x80, 0x2B, 0xE4, 0x90, + 0x12, 0xD5, 0xF0, 0x90, 0x12, 0xD5, 0xE0, 0xFF, + 0x24, 0x78, 0xF5, 0x82, 0xE4, 0x34, 0x8F, 0xF5, + 0x83, 0xE0, 0xFE, 0x74, 0x00, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x8B, 0xF5, 0x83, 0xEE, 0xF0, 0x90, + 0x12, 0xD5, 0xE0, 0x04, 0xF0, 0xE0, 0xB4, 0x3C, + 0xDA, 0x90, 0x3F, 0xFD, 0xE0, 0x64, 0x01, 0x70, + 0x7B, 0xC2, 0x84, 0x7F, 0x32, 0xFE, 0x12, 0x67, + 0xEE, 0xD2, 0x84, 0x80, 0x6F, 0x30, 0x0C, 0x6C, + 0x30, 0x07, 0x16, 0x90, 0x3F, 0xFD, 0xE0, 0xB4, + 0x01, 0x0B, 0xC2, 0x84, 0x7F, 0x32, 0x7E, 0x00, + 0x12, 0x67, 0xEE, 0xD2, 0x84, 0xC2, 0x07, 0x80, + 0x53, 0x90, 0x12, 0x8B, 0xE4, 0xF0, 0xA3, 0x74, + 0x64, 0xF0, 0x7F, 0x19, 0x7E, 0x00, 0x12, 0x67, + 0xEE, 0x90, 0x12, 0x8C, 0xE0, 0x24, 0xFF, 0xF0, + 0x90, 0x12, 0x8B, 0xE0, 0x34, 0xFF, 0xF0, 0x75, + 0x9E, 0x55, 0x30, 0x0C, 0x0D, 0xD3, 0xA3, 0xE0, + 0x94, 0x00, 0x90, 0x12, 0x8B, 0xE0, 0x94, 0x00, + 0x50, 0xD8, 0x30, 0x0C, 0x1F, 0xC2, 0x84, 0x7F, + 0x19, 0x7E, 0x00, 0x12, 0x67, 0xEE, 0xD2, 0x84, + 0x80, 0x12, 0x90, 0x8F, 0xF0, 0xE0, 0xD3, 0x94, + 0x00, 0x40, 0x09, 0x30, 0x0C, 0x04, 0xD2, 0x0B, + 0x80, 0x02, 0xC2, 0x0B, 0xC2, 0x15, 0x20, 0x05, + 0x03, 0x02, 0x5E, 0xDB, 0xC2, 0x05, 0xC2, 0x03, + 0x90, 0x8F, 0xFF, 0xE0, 0x64, 0xAF, 0x70, 0x2A, + 0xF0, 0x12, 0x67, 0x75, 0xE4, 0xF5, 0xA1, 0x7F, + 0x32, 0xFE, 0x12, 0x67, 0xEE, 0xE4, 0xF5, 0xA1, + 0x7F, 0x32, 0xFE, 0x12, 0x67, 0xEE, 0xE4, 0xF5, + 0xA1, 0x7F, 0x32, 0xFE, 0x12, 0x67, 0xEE, 0x75, + 0x87, 0x02, 0x75, 0x97, 0x55, 0x00, 0x00, 0x02, + 0x5E, 0xE0, 0x90, 0x8F, 0xFF, 0xE0, 0x64, 0xAE, + 0x70, 0x03, 0x02, 0x5E, 0xE0, 0x90, 0x8F, 0xFF, + 0xE0, 0xB4, 0xBF, 0x05, 0xD2, 0x03, 0x02, 0x5E, + 0xE0, 0x90, 0x8F, 0xFF, 0xE0, 0xB4, 0xCC, 0x24, + 0xC2, 0x84, 0x7F, 0x64, 0x7E, 0x00, 0x12, 0x67, + 0xEE, 0xD2, 0x84, 0x7F, 0xF8, 0x7E, 0x8E, 0x12, + 0x67, 0xEE, 0xC2, 0x84, 0x7F, 0x64, 0x7E, 0x00, + 0x12, 0x67, 0xEE, 0xD2, 0x84, 0xE4, 0x90, 0x8F, + 0xFF, 0xF0, 0x80, 0x64, 0x90, 0x8F, 0xFF, 0xE0, + 0xB4, 0xC3, 0x04, 0xD2, 0x01, 0x80, 0x59, 0x90, + 0x8F, 0xFF, 0xE0, 0x64, 0xC5, 0x70, 0x38, 0xF0, + 0x90, 0x8F, 0xFD, 0x74, 0xAA, 0xF0, 0xD2, 0x12, + 0xE4, 0x90, 0x12, 0x5B, 0xF0, 0x90, 0xF1, 0x0A, + 0xF0, 0x90, 0xF1, 0x1F, 0x74, 0x14, 0xF0, 0x90, + 0xF1, 0x22, 0xF0, 0xE4, 0x90, 0xF1, 0x1C, 0xF0, + 0x75, 0x9E, 0x55, 0x90, 0xF0, 0xC5, 0xE0, 0x44, + 0x01, 0xF0, 0x12, 0x27, 0xF9, 0x90, 0xF0, 0xC4, + 0x74, 0x01, 0xF0, 0xC2, 0x0A, 0x80, 0x19, 0x90, + 0x8F, 0xFF, 0xE0, 0x64, 0xD1, 0x60, 0x11, 0x90, + 0x8F, 0xFF, 0xE0, 0xB4, 0xE1, 0x0A, 0x12, 0x66, + 0x0C, 0x80, 0x05, 0x30, 0x06, 0x02, 0xC2, 0x06, + 0x12, 0x79, 0x05, 0x02, 0x5B, 0xF4, 0x22, 0x90, + 0x12, 0x5B, 0xE0, 0xFF, 0x13, 0x13, 0x13, 0x54, + 0x1F, 0x90, 0x12, 0xDA, 0xF0, 0xEF, 0x54, 0x07, + 0xA3, 0xF0, 0x90, 0x12, 0x5B, 0xE0, 0x24, 0x40, + 0xF5, 0x82, 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, + 0xB4, 0x01, 0x1A, 0x74, 0x41, 0x2F, 0xF5, 0x82, + 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, 0xB4, 0x02, + 0x0C, 0x90, 0x12, 0x5B, 0xE0, 0xD3, 0x94, 0x00, + 0x40, 0x03, 0x02, 0x5F, 0xAB, 0x90, 0x12, 0x5B, + 0xE0, 0xFF, 0x24, 0x40, 0xF5, 0x82, 0xE4, 0x34, + 0x19, 0xF5, 0x83, 0xE0, 0xB4, 0x01, 0x17, 0x74, + 0x41, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x19, 0xF5, + 0x83, 0xE0, 0xB4, 0x03, 0x09, 0x90, 0x12, 0x5B, + 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x5D, 0x90, 0x12, + 0x5B, 0xE0, 0xFF, 0x24, 0x40, 0xF5, 0x82, 0xE4, + 0x34, 0x19, 0xF5, 0x83, 0xE0, 0xB4, 0x03, 0x17, + 0x74, 0x41, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x19, + 0xF5, 0x83, 0xE0, 0xB4, 0x02, 0x09, 0x90, 0x12, + 0x5B, 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x34, 0x90, + 0x12, 0x5B, 0xE0, 0xFF, 0x24, 0x40, 0xF5, 0x82, + 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, 0x64, 0x03, + 0x60, 0x03, 0x02, 0x60, 0x58, 0x74, 0x41, 0x2F, + 0xF5, 0x82, 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, + 0x64, 0x01, 0x60, 0x03, 0x02, 0x60, 0x58, 0x90, + 0x12, 0x5B, 0xE0, 0xD3, 0x94, 0x00, 0x50, 0x03, + 0x02, 0x60, 0x58, 0x90, 0x12, 0x5B, 0xE0, 0x75, + 0xF0, 0x02, 0xA4, 0xFF, 0xAE, 0xF0, 0x90, 0x12, + 0x75, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x7A, 0xF0, + 0x79, 0x01, 0x24, 0x01, 0xF9, 0x74, 0xF0, 0x3E, + 0xFA, 0x90, 0x12, 0x5C, 0x74, 0x01, 0xF0, 0xA3, + 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x90, 0x12, 0x5C, + 0xE0, 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, + 0xE4, 0x12, 0x59, 0x6F, 0x90, 0x12, 0x5D, 0x75, + 0xF0, 0x01, 0x12, 0x5A, 0x1E, 0x90, 0x12, 0x5C, + 0xE0, 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, + 0x74, 0x20, 0x12, 0x59, 0x6F, 0x90, 0x12, 0x5B, + 0xE0, 0x24, 0xFF, 0xFF, 0xE4, 0x34, 0xFF, 0xFE, + 0xEF, 0x25, 0xE0, 0xFF, 0xEE, 0x33, 0xFE, 0x90, + 0x12, 0x75, 0xF0, 0xA3, 0xEF, 0xF0, 0x7A, 0xF0, + 0x79, 0x01, 0x24, 0x01, 0xF9, 0x74, 0xF0, 0x3E, + 0xFA, 0x90, 0x12, 0x5C, 0x74, 0x01, 0xF0, 0xA3, + 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x90, 0x12, 0x5C, + 0xE0, 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, + 0xE4, 0x12, 0x59, 0x6F, 0x90, 0x12, 0x5D, 0x75, + 0xF0, 0x01, 0x12, 0x5A, 0x1E, 0x90, 0x12, 0x5C, + 0xE0, 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, + 0x74, 0x10, 0x12, 0x59, 0x6F, 0x02, 0x61, 0x4A, + 0x90, 0x12, 0x5B, 0xE0, 0xFF, 0x24, 0x40, 0xF5, + 0x82, 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, 0xB4, + 0x01, 0x0F, 0x74, 0x41, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0x19, 0xF5, 0x83, 0xE0, 0x64, 0x01, 0x60, + 0x28, 0x90, 0x12, 0x5B, 0xE0, 0xFF, 0x24, 0x40, + 0xF5, 0x82, 0xE4, 0x34, 0x19, 0xF5, 0x83, 0xE0, + 0x64, 0x03, 0x60, 0x03, 0x02, 0x61, 0x4A, 0x74, + 0x41, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x19, 0xF5, + 0x83, 0xE0, 0x64, 0x03, 0x60, 0x03, 0x02, 0x61, + 0x4A, 0x90, 0x12, 0x5B, 0xE0, 0x75, 0xF0, 0x02, + 0xA4, 0xFF, 0xAE, 0xF0, 0x90, 0x12, 0x75, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x7A, 0xF0, 0x79, 0x01, + 0x24, 0x01, 0xF9, 0x74, 0xF0, 0x3E, 0xFA, 0x90, + 0x12, 0x5C, 0x74, 0x01, 0xF0, 0xA3, 0xEA, 0xF0, + 0xA3, 0xE9, 0xF0, 0x90, 0x12, 0x5C, 0xE0, 0xFB, + 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, 0xE4, 0x12, + 0x59, 0x6F, 0x90, 0x12, 0x5D, 0x75, 0xF0, 0x01, + 0x12, 0x5A, 0x1E, 0x90, 0x12, 0x5C, 0xE0, 0xFB, + 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, 0x74, 0x10, + 0x12, 0x59, 0x6F, 0x90, 0x12, 0x5B, 0xE0, 0x24, + 0x01, 0xFF, 0xE4, 0x33, 0xFE, 0xEF, 0x25, 0xE0, + 0xFF, 0xEE, 0x33, 0xFE, 0x90, 0x12, 0x75, 0xF0, + 0xA3, 0xEF, 0xF0, 0x7A, 0xF0, 0x79, 0x01, 0x24, + 0x01, 0xF9, 0x74, 0xF0, 0x3E, 0xFA, 0x90, 0x12, + 0x5C, 0x74, 0x01, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, + 0xE9, 0xF0, 0x90, 0x12, 0x5C, 0xE0, 0xFB, 0xA3, + 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, 0xE4, 0x12, 0x59, + 0x6F, 0x90, 0x12, 0x5D, 0x75, 0xF0, 0x01, 0x12, + 0x5A, 0x1E, 0x90, 0x12, 0x5C, 0xE0, 0xFB, 0xA3, + 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, 0x74, 0x20, 0x12, + 0x59, 0x6F, 0x12, 0x27, 0xF9, 0x90, 0xF0, 0xC4, + 0x74, 0x01, 0xF0, 0x20, 0x0A, 0x05, 0x75, 0x9E, + 0x55, 0x80, 0xF8, 0x90, 0x00, 0x01, 0xE0, 0xFE, + 0x90, 0x00, 0x00, 0xE0, 0x7C, 0x00, 0x24, 0x00, + 0xFF, 0xEC, 0x3E, 0xFE, 0x90, 0x12, 0x5B, 0xE0, + 0x25, 0xE0, 0x24, 0xA0, 0xF5, 0x82, 0xE4, 0x34, + 0x19, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0x22, 0xE4, 0x90, 0x12, 0xDB, 0xF0, 0x90, 0x12, + 0xDA, 0xF0, 0x90, 0xF2, 0xA8, 0xE0, 0xFF, 0x90, + 0x12, 0xDA, 0xE0, 0xFE, 0xC3, 0x9F, 0x40, 0x03, + 0x02, 0x63, 0xD0, 0x74, 0x60, 0x2E, 0xF5, 0x82, + 0xE4, 0x34, 0x88, 0xF5, 0x83, 0xE0, 0x64, 0x01, + 0x60, 0x03, 0x02, 0x63, 0xB5, 0xEE, 0x25, 0xE0, + 0x24, 0xC0, 0xF5, 0x82, 0xE4, 0x34, 0x87, 0xF5, + 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xD3, 0x94, 0xFF, + 0xEE, 0x94, 0x00, 0x40, 0x12, 0x90, 0x12, 0xDB, + 0xE0, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, 0x8A, + 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0x80, 0x22, 0x90, + 0x12, 0xDA, 0xE0, 0x25, 0xE0, 0x24, 0xC0, 0xF5, + 0x82, 0xE4, 0x34, 0x87, 0xF5, 0x83, 0xE0, 0xA3, + 0xE0, 0xFF, 0x90, 0x12, 0xDB, 0xE0, 0x24, 0x00, + 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, 0xEF, + 0xF0, 0x90, 0x12, 0xDA, 0xE0, 0x75, 0xF0, 0x04, + 0xA4, 0x24, 0x80, 0xF5, 0x82, 0xE5, 0xF0, 0x34, + 0x86, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x02, + 0x12, 0x5B, 0x62, 0xE4, 0x7B, 0xFF, 0xFA, 0xF9, + 0xF8, 0xC3, 0x12, 0x5B, 0x51, 0x50, 0x12, 0x90, + 0x12, 0xDB, 0xE0, 0x24, 0x28, 0xF5, 0x82, 0xE4, + 0x34, 0x8A, 0xF5, 0x83, 0x74, 0xFF, 0xF0, 0x80, + 0x31, 0x90, 0x12, 0xDA, 0xE0, 0x75, 0xF0, 0x04, + 0xA4, 0x24, 0x80, 0xF5, 0x82, 0xE5, 0xF0, 0x34, + 0x86, 0xF5, 0x83, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x02, + 0x12, 0x5B, 0x62, 0x90, 0x12, 0xDB, 0xE0, 0x24, + 0x28, 0xF5, 0x82, 0xE4, 0x34, 0x8A, 0xF5, 0x83, + 0xEF, 0xF0, 0x85, 0x0B, 0xAF, 0x90, 0x12, 0xDA, + 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, 0x01, + 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x84, 0xF5, 0x83, + 0xE0, 0xF5, 0xA9, 0x75, 0xF0, 0x04, 0xEF, 0xA4, + 0x24, 0x02, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x84, + 0xF5, 0x83, 0xE0, 0xF5, 0xAA, 0x90, 0x12, 0xDA, + 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, 0x03, + 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x84, 0xF5, 0x83, + 0xE0, 0xF5, 0xAB, 0x75, 0xF0, 0x04, 0xEF, 0xA4, + 0x24, 0x81, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x86, + 0xF5, 0x83, 0xE0, 0xF5, 0xA2, 0x90, 0x12, 0xDA, + 0xE0, 0xFF, 0x75, 0xF0, 0x04, 0xA4, 0x24, 0x82, + 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x86, 0xF5, 0x83, + 0xE0, 0xF5, 0xA3, 0x75, 0xF0, 0x04, 0xEF, 0xA4, + 0x24, 0x83, 0xF5, 0x82, 0xE5, 0xF0, 0x34, 0x86, + 0xF5, 0x83, 0xE0, 0xF5, 0xA4, 0xD2, 0xB0, 0x85, + 0x0C, 0xAF, 0x90, 0x12, 0xDA, 0xE0, 0xFF, 0x75, + 0xF0, 0x04, 0xA4, 0x24, 0x41, 0xF5, 0x82, 0xE5, + 0xF0, 0x34, 0x85, 0xF5, 0x83, 0xE0, 0xF5, 0xA9, + 0x75, 0xF0, 0x04, 0xEF, 0xA4, 0x24, 0x42, 0xF5, + 0x82, 0xE5, 0xF0, 0x34, 0x85, 0xF5, 0x83, 0xE0, + 0xF5, 0xAA, 0x90, 0x12, 0xDA, 0xE0, 0x75, 0xF0, + 0x04, 0xA4, 0x24, 0x43, 0xF5, 0x82, 0xE5, 0xF0, + 0x34, 0x85, 0xF5, 0x83, 0xE0, 0xF5, 0xAB, 0x20, + 0xB0, 0x06, 0x30, 0x0E, 0x03, 0x20, 0xDA, 0x05, + 0x75, 0x9E, 0x55, 0x80, 0xF2, 0xC2, 0xDA, 0xC2, + 0x0E, 0xAF, 0xA6, 0xEF, 0xFE, 0xAD, 0xA7, 0x7C, + 0x00, 0xE4, 0x2D, 0xFF, 0xEC, 0x3E, 0xFE, 0x90, + 0x28, 0x0B, 0xE4, 0x93, 0xFD, 0xC3, 0x13, 0x2F, + 0xFF, 0xEC, 0x3E, 0xFE, 0x90, 0x12, 0xDB, 0xE0, + 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x00, 0xF5, 0x82, + 0xE4, 0x34, 0xF2, 0xF5, 0x83, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0xD2, 0xB0, 0x20, 0xB0, 0x06, 0x30, + 0x0E, 0x03, 0x20, 0xDA, 0x05, 0x75, 0x9E, 0x55, + 0x80, 0xF2, 0xC2, 0xDA, 0xC2, 0x0E, 0xAF, 0xA6, + 0xEF, 0xFE, 0xAD, 0xA7, 0x7C, 0x00, 0xE4, 0x2D, + 0xFF, 0xEC, 0x3E, 0xFE, 0x90, 0x28, 0x0C, 0xE4, + 0x93, 0xFD, 0xC3, 0x13, 0x2F, 0xFF, 0xEC, 0x3E, + 0xFE, 0x90, 0x12, 0xDB, 0xE0, 0x25, 0xE0, 0x25, + 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0xF2, + 0xF5, 0x83, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, + 0x12, 0xDB, 0xE0, 0x04, 0xF0, 0x90, 0x12, 0xDB, + 0xE0, 0xFF, 0x65, 0x08, 0x60, 0x12, 0x90, 0x88, + 0xB0, 0xE0, 0xFE, 0xEF, 0x6E, 0x60, 0x09, 0x90, + 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x02, 0x61, 0x8A, + 0x90, 0x12, 0xDB, 0xE0, 0x90, 0x88, 0xB0, 0xF0, + 0x22, 0xAB, 0x07, 0xC2, 0x18, 0xEB, 0x25, 0xE0, + 0xFE, 0xE4, 0x33, 0x90, 0x12, 0xDC, 0xF0, 0xA3, + 0xCE, 0xF0, 0xE4, 0xFA, 0xEA, 0xFF, 0x7E, 0x00, + 0x7C, 0x00, 0x7D, 0x28, 0x12, 0x59, 0x81, 0xAC, + 0x06, 0xAD, 0x07, 0xEB, 0x25, 0xE0, 0xFF, 0xE4, + 0x33, 0xFE, 0xED, 0x2F, 0xFF, 0xEC, 0x3E, 0x90, + 0x12, 0xDC, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x12, + 0xDC, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0x24, 0x01, + 0xF5, 0x82, 0x74, 0x20, 0x3C, 0xF5, 0x83, 0xE0, + 0xFE, 0x74, 0x00, 0x2D, 0xF5, 0x82, 0x74, 0x20, + 0x3C, 0xF5, 0x83, 0xE0, 0xFD, 0xEE, 0xED, 0xFF, + 0x90, 0x12, 0xDA, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, + 0xA3, 0xE0, 0xA3, 0xE0, 0xFD, 0x24, 0x01, 0xF5, + 0x82, 0x74, 0x00, 0x3C, 0xF5, 0x83, 0xE0, 0xFE, + 0x74, 0x00, 0x2D, 0xF5, 0x82, 0x74, 0x00, 0x3C, + 0xF5, 0x83, 0xE0, 0xFD, 0xEE, 0xED, 0xFF, 0x90, + 0x12, 0xDB, 0xE0, 0x24, 0xFA, 0xFD, 0x90, 0x12, + 0xDA, 0xE0, 0x34, 0x00, 0xFC, 0xD3, 0xEF, 0x9D, + 0xEE, 0x9C, 0x40, 0x0E, 0x90, 0x12, 0x72, 0xE0, + 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, 0x71, 0xE0, + 0x04, 0xF0, 0xEF, 0x24, 0xFA, 0xFF, 0xE4, 0x3E, + 0xFE, 0xD3, 0x90, 0x12, 0xDB, 0xE0, 0x9F, 0x90, + 0x12, 0xDA, 0xE0, 0x9E, 0x40, 0x0E, 0x90, 0x12, + 0xBE, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xBD, 0xE0, 0x04, 0xF0, 0x0A, 0xEA, 0x64, 0x1E, + 0x60, 0x03, 0x02, 0x63, 0xEC, 0x90, 0x12, 0xBF, + 0xE0, 0x04, 0xF0, 0xE0, 0x64, 0x14, 0x70, 0x37, + 0xF0, 0x90, 0x12, 0xBD, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xD3, 0x90, 0x12, 0x72, 0xE0, 0x9F, 0x90, + 0x12, 0x71, 0xE0, 0x9E, 0x40, 0x02, 0xD2, 0x18, + 0x30, 0x18, 0x1C, 0xC2, 0x18, 0xE4, 0x90, 0x12, + 0x71, 0xF0, 0xA3, 0xF0, 0x90, 0x12, 0xBD, 0xF0, + 0xA3, 0xF0, 0x90, 0xF1, 0x04, 0x74, 0x1E, 0xF0, + 0x90, 0xF0, 0xC5, 0xE0, 0x44, 0x01, 0xF0, 0x22, + 0x30, 0x98, 0x04, 0xD2, 0x05, 0xC2, 0x98, 0x30, + 0x99, 0x24, 0xD2, 0x06, 0xC2, 0x99, 0x30, 0x0B, + 0x19, 0xB2, 0x14, 0x30, 0x14, 0x08, 0x75, 0x8A, + 0x8F, 0x75, 0x8B, 0x00, 0x80, 0x06, 0x75, 0x8A, + 0x8F, 0x75, 0x8B, 0x78, 0xC2, 0x0B, 0xD2, 0x07, + 0x80, 0x04, 0xC2, 0x0C, 0xC2, 0x07, 0x32, 0x32, + 0x05, 0x00, 0x03, 0x20, 0x03, 0x03, 0xE5, 0xC0, + 0x54, 0x02, 0x70, 0x03, 0x02, 0x5B, 0xD1, 0xE5, + 0xC0, 0x54, 0x02, 0x60, 0x13, 0x90, 0x00, 0x00, + 0x7F, 0x00, 0x7E, 0x90, 0xE4, 0x74, 0xFF, 0xF0, + 0xA3, 0x75, 0x9E, 0x55, 0xDF, 0xF9, 0xDE, 0xF7, + 0x02, 0x5B, 0xD1, 0xC2, 0xD3, 0xC2, 0xD4, 0x75, + 0x9E, 0x55, 0x12, 0x65, 0xEF, 0x12, 0x65, 0xEF, + 0x78, 0x01, 0x74, 0x55, 0xF6, 0x64, 0xFF, 0x08, + 0xB8, 0x60, 0xF9, 0x78, 0x80, 0x74, 0x55, 0xF6, + 0x64, 0xFF, 0x08, 0xB8, 0x00, 0xF9, 0x75, 0x9E, + 0x55, 0x12, 0x65, 0xEF, 0x12, 0x65, 0xEF, 0x78, + 0x01, 0x74, 0x55, 0xC0, 0xE0, 0x66, 0x70, 0x22, + 0xD0, 0xE0, 0x63, 0xE0, 0xFF, 0x08, 0xB8, 0x60, + 0xF2, 0x78, 0x80, 0x74, 0x55, 0xC0, 0xE0, 0x66, + 0x70, 0x10, 0xD0, 0xE0, 0x63, 0xE0, 0xFF, 0x08, + 0xB8, 0x00, 0xF2, 0x90, 0x00, 0x00, 0x74, 0x01, + 0xF0, 0x22, 0x90, 0x00, 0x00, 0x74, 0x00, 0xF0, + 0xA3, 0x90, 0x00, 0x01, 0xE8, 0xF0, 0xD0, 0xE0, + 0x22, 0x78, 0x60, 0x74, 0x55, 0xF6, 0x64, 0xFF, + 0x08, 0xB8, 0x81, 0xF9, 0x75, 0x9E, 0x55, 0x12, + 0x65, 0xEF, 0x12, 0x65, 0xEF, 0x78, 0x60, 0x74, + 0x55, 0xC0, 0xE0, 0x66, 0x70, 0x11, 0xD0, 0xE0, + 0x63, 0xE0, 0xFF, 0x08, 0xB8, 0x81, 0xF2, 0x90, + 0x00, 0x00, 0xE0, 0x44, 0x02, 0xF0, 0x22, 0x90, + 0x00, 0x00, 0xE0, 0x44, 0x00, 0xF0, 0x90, 0x00, + 0x02, 0xE8, 0xF0, 0xD0, 0xE0, 0x22, 0xC0, 0xE0, + 0xC0, 0xD0, 0xD0, 0xD0, 0xD0, 0xE0, 0x32, 0x78, + 0x00, 0xD8, 0xFE, 0x22, 0x78, 0x96, 0x79, 0xFA, + 0xD9, 0xFE, 0xD8, 0xFA, 0x22, 0x78, 0x02, 0x79, + 0xFA, 0x7A, 0xFA, 0xDA, 0xFE, 0xD9, 0xFA, 0xD8, + 0xF6, 0x22, 0x00, 0x00, 0xE4, 0x90, 0x12, 0xDE, + 0xF0, 0xA3, 0xF0, 0x90, 0x12, 0xDA, 0xF0, 0xA3, + 0xF0, 0xB2, 0x86, 0xB2, 0x86, 0xFD, 0xFC, 0xB2, + 0x85, 0x75, 0x9E, 0x55, 0xED, 0xAE, 0x04, 0x78, + 0x07, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, + 0xFF, 0x90, 0x12, 0xDA, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xE4, 0x90, 0x12, 0xE0, 0xF0, 0xA3, 0xF0, + 0x90, 0x12, 0xDA, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, + 0xEA, 0xA3, 0xF0, 0xEB, 0xA3, 0xF0, 0xE4, 0xF9, + 0xFB, 0xFA, 0x90, 0x12, 0xDA, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x12, 0x78, 0xFD, 0xEF, 0x29, 0xF9, + 0x90, 0x12, 0xDB, 0xE0, 0x04, 0xF0, 0x70, 0x06, + 0x90, 0x12, 0xDA, 0xE0, 0x04, 0xF0, 0x0B, 0xBB, + 0x00, 0x01, 0x0A, 0xEB, 0x64, 0x08, 0x4A, 0x70, + 0xD9, 0x90, 0x12, 0xDC, 0xE0, 0x29, 0xFF, 0xA3, + 0xE0, 0x2F, 0x24, 0x08, 0xF9, 0xF4, 0x04, 0xF9, + 0xFF, 0x90, 0x12, 0xDF, 0xE0, 0x2F, 0xF0, 0x90, + 0x12, 0xDE, 0xE0, 0x34, 0x00, 0xF0, 0x90, 0x12, + 0xE1, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x12, + 0xE0, 0xE0, 0x04, 0xF0, 0xC3, 0x90, 0x12, 0xE1, + 0xE0, 0x94, 0x10, 0x90, 0x12, 0xE0, 0xE0, 0x64, + 0x80, 0x94, 0x80, 0x40, 0x8B, 0x0D, 0xBD, 0x00, + 0x01, 0x0C, 0xED, 0x70, 0x03, 0xEC, 0x64, 0x01, + 0x60, 0x03, 0x02, 0x66, 0x1F, 0x90, 0x12, 0xDE, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEC, 0x90, 0x8E, + 0x0E, 0xF0, 0xED, 0x90, 0x8E, 0x0F, 0xF0, 0x90, + 0x8E, 0x0D, 0x74, 0xAA, 0xF0, 0xB2, 0x86, 0xB2, + 0x86, 0x75, 0x9E, 0x55, 0x80, 0xFB, 0x22, 0x75, + 0x9E, 0x55, 0x90, 0xF1, 0x40, 0x74, 0x03, 0xF0, + 0x7F, 0x01, 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x7F, + 0x01, 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x75, 0x9E, + 0x55, 0x90, 0xF1, 0x41, 0x74, 0x01, 0xF0, 0x7F, + 0x05, 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x7F, 0x05, + 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x75, 0x9E, 0x55, + 0x90, 0xF1, 0x41, 0x74, 0x13, 0xF0, 0x7F, 0x05, + 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x7F, 0x05, 0x7E, + 0x00, 0x12, 0x78, 0x5A, 0x75, 0x9E, 0x55, 0x90, + 0xF1, 0x41, 0x74, 0x1F, 0xF0, 0x7F, 0x05, 0x7E, + 0x00, 0x12, 0x78, 0x5A, 0x7F, 0x05, 0x7E, 0x00, + 0x12, 0x78, 0x5A, 0x75, 0x9E, 0x55, 0x90, 0xF1, + 0x41, 0x74, 0x3F, 0xF0, 0x7F, 0x05, 0x7E, 0x00, + 0x12, 0x78, 0x5A, 0x7F, 0x05, 0x7E, 0x00, 0x12, + 0x78, 0x5A, 0x75, 0x9E, 0x55, 0x90, 0xF1, 0x40, + 0x74, 0x83, 0xF0, 0x7F, 0x01, 0x7E, 0x00, 0x12, + 0x78, 0x5A, 0x7F, 0x01, 0x7E, 0x00, 0x12, 0x78, + 0x5A, 0x75, 0x9E, 0x55, 0x22, 0xE4, 0x90, 0xF0, + 0xC4, 0xF0, 0x75, 0x9E, 0x55, 0xFD, 0xFC, 0x90, + 0xF1, 0x47, 0xE0, 0xFE, 0x90, 0xF1, 0x48, 0xE0, + 0x7A, 0x00, 0x24, 0x00, 0xFB, 0xEA, 0x3E, 0xFA, + 0x90, 0xF1, 0x49, 0xE0, 0x7F, 0x00, 0xFE, 0xEF, + 0x2B, 0xFF, 0xEA, 0x3E, 0xFE, 0x90, 0xF1, 0x4A, + 0xE0, 0x7A, 0x00, 0x2F, 0xFD, 0xEA, 0x3E, 0xFC, + 0x90, 0xF1, 0x40, 0x74, 0xE3, 0xF0, 0xE4, 0x90, + 0xF1, 0x41, 0xF0, 0xAE, 0x04, 0xAF, 0x05, 0x12, + 0x78, 0xB6, 0x75, 0x9E, 0x55, 0x90, 0xF1, 0x41, + 0x74, 0x40, 0xF0, 0x7F, 0x05, 0x7E, 0x00, 0x12, + 0x78, 0x5A, 0x7F, 0x05, 0x7E, 0x00, 0x12, 0x78, + 0x5A, 0x75, 0x9E, 0x55, 0xE4, 0x90, 0xF1, 0x41, + 0xF0, 0x90, 0xF1, 0x40, 0xF0, 0x7F, 0x02, 0xFE, + 0x12, 0x78, 0x5A, 0x7F, 0x02, 0x7E, 0x00, 0x12, + 0x78, 0x5A, 0x75, 0x9E, 0x55, 0x22, 0xEF, 0x1F, + 0x70, 0x01, 0x1E, 0x75, 0x9E, 0x55, 0xD3, 0xEF, + 0x94, 0x00, 0xEE, 0x94, 0x00, 0x50, 0xEF, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xE5, 0xC0, 0x30, 0xE3, 0x1B, 0x12, 0x67, 0x75, + 0x7F, 0x32, 0x7E, 0x00, 0x12, 0x78, 0x5A, 0x12, + 0x66, 0xE7, 0x12, 0x26, 0x17, 0x12, 0x00, 0x36, + 0x12, 0x78, 0xD8, 0x12, 0x41, 0x2D, 0x80, 0x36, + 0xE5, 0xC0, 0x30, 0xE2, 0x0D, 0x12, 0x66, 0xE7, + 0x90, 0xF0, 0xC4, 0x74, 0x01, 0xF0, 0xD2, 0xAF, + 0x80, 0x24, 0xE5, 0xC0, 0x30, 0xE0, 0x0B, 0x12, + 0x66, 0xE7, 0x90, 0xF0, 0xC4, 0x74, 0x01, 0xF0, + 0x80, 0x14, 0xE5, 0xC0, 0x30, 0xE1, 0x0F, 0x12, + 0x66, 0xE7, 0x12, 0x26, 0x17, 0x12, 0x00, 0x36, + 0x12, 0x78, 0xD8, 0x12, 0x41, 0x2D, 0xE4, 0xF5, + 0xC0, 0x22, 0xE4, 0xFD, 0xFC, 0xC3, 0xED, 0x9F, + 0xEC, 0x9E, 0x50, 0x18, 0xE4, 0xFB, 0xFA, 0x75, + 0x9E, 0x55, 0x0B, 0xBB, 0x00, 0x01, 0x0A, 0xBA, + 0x03, 0xF5, 0xBB, 0x20, 0xF2, 0x0D, 0xBD, 0x00, + 0x01, 0x0C, 0x80, 0xE1, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0xC0, 0xE0, 0xC0, 0x83, 0xC0, 0x82, 0xD2, 0x0A, + 0x90, 0xF0, 0xC4, 0xE4, 0xF0, 0xC2, 0xD8, 0xD0, + 0x82, 0xD0, 0x83, 0xD0, 0xE0, 0x32, 0xE4, 0xFD, + 0xFC, 0xC3, 0xED, 0x9F, 0xEC, 0x9E, 0x50, 0x08, + 0x00, 0x0D, 0xBD, 0x00, 0x01, 0x0C, 0x80, 0xF1, + 0x22, 0xC0, 0xE0, 0xD2, 0x09, 0x05, 0x0F, 0xE5, + 0x0F, 0x70, 0x02, 0x05, 0x0E, 0xD0, 0xE0, 0x32, + 0x75, 0x91, 0x01, 0x90, 0x28, 0x0A, 0xE4, 0x93, + 0xF5, 0x89, 0xD2, 0xAC, 0x22, 0x90, 0xF0, 0xC5, + 0x74, 0x06, 0xF0, 0x30, 0xF8, 0x02, 0xD2, 0x15, + 0x22, 0xEE, 0x30, 0xE7, 0x07, 0xC3, 0xE4, 0x9F, + 0xFF, 0xE4, 0x9E, 0xFE, 0x22, 0x8F, 0x82, 0x8E, + 0x83, 0xE4, 0x93, 0xFF, 0x22, 0x00, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x3F, 0xFF, 0x74, 0x03, 0xF0, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 \ No newline at end of file diff --git a/drivers/input/touchscreen/ct36x/Makefile b/drivers/input/touchscreen/ct36x/Makefile new file mode 100644 index 000000000000..bcebcb0ca072 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_CT36X_TS) += ct36x_ts.o diff --git a/drivers/input/touchscreen/ct36x/core.c b/drivers/input/touchscreen/ct36x/core.c new file mode 100644 index 000000000000..43ba5a3287de --- /dev/null +++ b/drivers/input/touchscreen/ct36x/core.c @@ -0,0 +1,323 @@ +#include "ct36x_priv.h" + +/* +* Private functions +*/ +#define CT36X_CHIP_FLASH_SECTOR_NUM 256 +#define CT36X_CHIP_FLASH_SECTOR_SIZE 128 +#define CT36X_CHIP_FLASH_SOURCE_SIZE 8 + +static unsigned char binary_data[] = { +#include "LX20JS06_A1_CT363_V03_5198_121015.dat" +}; + +int ct36x_chip_set_idle(struct ct36x_data *ts) +{ + int ret = 0; + char buf[2] = {0x00, 0xA5}; + + ret = ct36x_update_write(ts, 0x7F, buf, 2); + mdelay(10); + + return ret; +} + +static int ct36x_chip_rst_offset(struct ct36x_data *ts) +{ + int ret = 0; + char buf = 0x00; + + ret =ct36x_update_write(ts, 0x7F, &buf, 1); + mdelay(10); + + return ret; +} + +static char ct36x_chip_get_bus_status(struct ct36x_data *ts) +{ + int ret = 0; + char buf; + + ret =ct36x_update_read(ts, 0x7F, &buf, 1); + mdelay(10); + + return (ret < 0)?-1:buf; +} + +static int ct36x_chip_era_flash(struct ct36x_data *ts) +{ + char c; + int ret = 0; + char buf[3] = {0x00, 0x33, 0x00}; + + ret = ct36x_update_write(ts, 0x7F, buf, 3); + mdelay(10); + + // Reset I2C offset address + ret = ct36x_chip_rst_offset(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to reset I2C offset address\n"); + return ret; + } + + // Read I2C bus status + c = ct36x_chip_get_bus_status(ts); + if ( c != 0xAA ) { + dev_err(ts->dev, "CT36X chip: Failed to get bus status: %d\n", c); + return -1; + } + + return 0; +} + +/* +** Prepare code segment +*/ +static int ct36x_chip_set_code(unsigned short flash_addr, char *buf) +{ + unsigned char cod_chksum; + + // Flash address + // data length + buf[2] = (char)(flash_addr >> 8); + buf[3] = (char)(flash_addr & 0xFF); + buf[4] = 0x08; + + // Fill firmware source data + if ( flash_addr == (160) || flash_addr == (168) ) { + buf[6] = ~binary_data[flash_addr + 0]; + buf[7] = ~binary_data[flash_addr + 1]; + buf[8] = ~binary_data[flash_addr + 2]; + buf[9] = ~binary_data[flash_addr + 3]; + buf[10] = ~binary_data[flash_addr + 4]; + buf[11] = ~binary_data[flash_addr + 5]; + buf[12] = ~binary_data[flash_addr + 6]; + buf[13] = ~binary_data[flash_addr + 7]; + } else { + buf[6] = binary_data[flash_addr + 0]; + buf[7] = binary_data[flash_addr + 1]; + buf[8] = binary_data[flash_addr + 2]; + buf[9] = binary_data[flash_addr + 3]; + buf[10] = binary_data[flash_addr + 4]; + buf[11] = binary_data[flash_addr + 5]; + buf[12] = binary_data[flash_addr + 6]; + buf[13] = binary_data[flash_addr + 7]; + } + + /* Calculate a checksum by Host controller. + ** Checksum = ~(FLASH_ADRH+FLASH_ADRL+LENGTH+ + ** Binary_Data1+Binary_Data2+Binary_Data3+Binary_Data4+ + ** Binary_Data5+Binary_Data6+Binary_Data7+Binary_Data8) + 1 + */ + cod_chksum = ~(buf[2]+buf[3]+buf[4]+ + buf[6]+buf[7]+buf[8]+buf[9]+ + buf[10]+buf[11]+buf[12]+buf[13]) + 1; + buf[5] = cod_chksum; + + return cod_chksum; +} + +static int ct36x_chip_wr_firmware(struct ct36x_data *ts) +{ + int ret = 0; + int sec, cod; + unsigned char cod_chksum = 0x00; + unsigned int fin_chksum = 0x00; + unsigned short flash_addr; + char buf[14]; + + buf[0] = 0x00; + buf[1] = 0x55; + + // 256 sectors, 128 bytes per sectors + for ( sec = 0; sec < CT36X_CHIP_FLASH_SECTOR_NUM; sec++ ) { + flash_addr = sec * CT36X_CHIP_FLASH_SECTOR_SIZE; + // 16 segments, 8 bytes per segment + for ( cod = 0; cod < (CT36X_CHIP_FLASH_SECTOR_SIZE/CT36X_CHIP_FLASH_SOURCE_SIZE); cod++ ) { + // Fill binary data + cod_chksum = ct36x_chip_set_code(flash_addr, buf); + fin_chksum += cod_chksum; + + // Write firmware source data + ret =ct36x_update_write(ts, 0x7F, buf, 14); + if(ret < 0) + return ret; + mdelay(1); + + // Increase flash address 8bytes for each write command + flash_addr += CT36X_CHIP_FLASH_SOURCE_SIZE; + } + // + mdelay(20); + } + + return 0; +} + +int ct36x_chip_get_binchksum(void) +{ + int sec, cod; + unsigned char cod_chksum; + unsigned int fin_chksum = 0; + unsigned short flash_addr; + char buf[14]; + + // 256 sectors, 128 bytes per sectors + for ( sec = 0; sec < CT36X_CHIP_FLASH_SECTOR_NUM; sec++ ) { + flash_addr = sec * CT36X_CHIP_FLASH_SECTOR_SIZE; + // 16 segments, 8 bytes per segment + for ( cod = 0; cod < (CT36X_CHIP_FLASH_SECTOR_SIZE/CT36X_CHIP_FLASH_SOURCE_SIZE); cod++ ) { + // Fill binary data + cod_chksum = ct36x_chip_set_code(flash_addr, buf); + fin_chksum += cod_chksum; + + // Increase flash address 8bytes for each write command + flash_addr += CT36X_CHIP_FLASH_SOURCE_SIZE; + } + } + + return (unsigned short)fin_chksum; +} + +int ct36x_chip_get_fwchksum(struct ct36x_data *ts) +{ + int ret, fwchksum = 0x00; + char buf[3]; + + buf[0] = 0xFF; + buf[1] = 0x8F; + buf[2] = 0xFF; + ret = ct36x_write(ts, buf, 3); + if(ret < 0) + return ret; + mdelay(20); + + buf[0] = 0x00; + buf[1] = 0xE1; + ret = ct36x_write(ts, buf, 2); + if(ret < 0) + return ret; + mdelay(500); + + buf[0] = 0xFF; + buf[1] = 0x8E; + buf[2] = 0x0E; + ret = ct36x_write(ts, buf, 3); + if(ret < 0) + return ret; + mdelay(20); + + ret = ct36x_chip_rst_offset(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to reset I2C offset address\n"); + return ret; + } + + ret = ct36x_read(ts, buf, 3); + if(ret < 0) + return ret; + + mdelay(20); + fwchksum = ((buf[0]<<8) | buf[1]); + + return fwchksum; +} + +int ct36x_chip_get_ver(struct ct36x_data *ts) +{ + int ret = 0; + char buf[3], ver; + + // Read version command + buf[0] = 0xFF; + buf[1] = 0x3F; + buf[2] = 0xFF; + ret = ct36x_write(ts, buf, 3); + if(ret < 0) + return ret; + mdelay(10); + + buf[0] = 0x00; + ret = ct36x_write(ts, buf, 1); + if(ret < 0) + return ret; + mdelay(10); + + // do read version + ret = ct36x_read(ts, &ver, 1); + if(ret < 0) + return ret; + mdelay(10); + + return ver; +} + +int ct36x_chip_get_vendor(struct ct36x_data *ts) +{ + return 0; +} + +int ct36x_chip_go_sleep(struct ct36x_data *ts) +{ + int ret = 0; + char buf[3]; + + buf[0] = 0xFF; + buf[1] = 0x8F; + buf[2] = 0xFF; + ret = ct36x_write(ts, buf, 3); + if(ret < 0) + return ret; + mdelay(3); + + buf[0] = 0x00; + buf[1] = 0xAF; + ret = ct36x_write(ts, buf, 2); + if(ret < 0) + return ret; + mdelay(3); + + return 0; +} + +int ct36x_chip_go_bootloader(struct ct36x_data *ts) +{ + int ret = 0; + char c; + + // Init bootloader + ret = ct36x_chip_set_idle(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to set idle\n"); + return ret; + } + + // Reset I2C offset address + ret = ct36x_chip_rst_offset(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to reset I2C offset address\n"); + return ret; + } + + // Get I2C bus status + c = ct36x_chip_get_bus_status(ts); + if ( c != 0xAA ) { + dev_err(ts->dev, "CT36X chip: Failed to get bus status: %d\n", c); + return -1; + } + + // Erase flash + ret = ct36x_chip_era_flash(ts); + if ( ret < 0 ) { + dev_err(ts->dev, "CT36X chip: Failed to era flash\n"); + return ret; + } + + // Write source data + ret = ct36x_chip_wr_firmware(ts); + dev_err(ts->dev, "CT36X chip: Failed to write firmware\n"); + if(ret < 0){ + return ret; + } + return 0; +} diff --git a/drivers/input/touchscreen/ct36x/ct360.c b/drivers/input/touchscreen/ct36x/ct360.c new file mode 100644 index 000000000000..e6f8952fd538 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/ct360.c @@ -0,0 +1,3 @@ + +struct ct36x_ops ct360_ops = { +}; diff --git a/drivers/input/touchscreen/ct36x/ct365.c b/drivers/input/touchscreen/ct36x/ct365.c new file mode 100644 index 000000000000..fb8406039d12 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/ct365.c @@ -0,0 +1,255 @@ +#define CT365_POINT_NUM 10 + +struct ct365_finger_data { + unsigned char status : 4; // Action information, 1: Down; 2: Move; 3: Up + unsigned char id : 4; // ID information, from 1 to CFG_MAX_POINT_NUM + unsigned char xhi; // X coordinate Hi + unsigned char yhi; // Y coordinate Hi + unsigned char ylo : 4; // Y coordinate Lo + unsigned char xlo : 4; // X coordinate Lo + unsigned char area; // Touch area + unsigned char pressure; // Touch Pressure +}; + + +struct ct365_priv{ + int press; + int release; + int x, y; + union{ + struct ct365_finger_data pts[CT365_POINT_NUM]; + char buf[CT365_POINT_NUM * sizeof(struct ct365_finger_data)]; + }; +}; + +static int ct365_init_hw(struct ct36x_data *ts) +{ + int ret = 0; + + ret = gpio_request(ts->rst_io.gpio, "ct365_rst"); + if(ret < 0){ + dev_err(ts->dev, "Failed to request rst gpio\n"); + return ret; + } + + ret = gpio_request(ts->irq_io.gpio, "ct365_irq"); + if(ret < 0){ + gpio_free(ts->rst_io.gpio); + dev_err(ts->dev, "Failed to request irq gpio\n"); + return ret; + } + gpio_direction_input(ts->irq_io.gpio); + gpio_pull_updown(ts->irq_io.gpio, 1); + + gpio_direction_output(ts->rst_io.gpio, ts->rst_io.active_low); + + return 0; +} +static void ct365_deinit_hw(struct ct36x_data *ts) +{ + gpio_free(ts->rst_io.gpio); + gpio_free(ts->irq_io.gpio); +} + +static void ct365_reset_hw(struct ct36x_data *ts) +{ + gpio_direction_output(ts->rst_io.gpio, ts->rst_io.active_low); + msleep(50); + gpio_set_value(ts->rst_io.gpio, !ts->rst_io.active_low); + msleep(50); + gpio_set_value(ts->rst_io.gpio, ts->rst_io.active_low); + msleep(500); +} + +static int ct365_init(struct ct36x_data *ts) +{ + int ret = 0, fwchksum, binchksum, updcnt = 5; + struct ct365_priv *ct365 = NULL; + + ret = ct365_init_hw(ts); + if(ret < 0) + return ret; + + /* Hardware reset */ + ct365_reset_hw(ts); + // Get binary Checksum + binchksum = ct36x_chip_get_binchksum(); + ct36x_dbg(ts, "CT365 init: binchksum = %d\n", binchksum); + + ret = ct36x_chip_get_fwchksum(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to get fwchksum\n"); + return ret; + } + fwchksum = ret; + ct36x_dbg(ts, "CT365 init: fwchksum = %d\n", fwchksum); + + while(binchksum != fwchksum && updcnt--) { + /* Update Firmware */ + ret = ct36x_chip_go_bootloader(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to go bootloader\n"); + return ret; + } + /* Hardware reset */ + ct365_reset_hw(ts); + + ret = ct36x_chip_get_fwchksum(ts); + if(ret < 0){ + dev_err(ts->dev, "CT36X chip: Failed to get fwchksum\n"); + return ret; + } + fwchksum = ret; + ct36x_dbg(ts, "CT365 update FW: fwchksum = %d\n", fwchksum); + } + if(binchksum != fwchksum){ + dev_err(ts->dev, "Fail to update FW\n"); + return -ENODEV; + } + + /* Hardware reset */ + ct365_reset_hw(ts); + + ret = ct36x_chip_set_idle(ts); + if(ret < 0){ + dev_err(ts->dev, "CT365 init: Failed to set idle\n"); + return ret; + } + + msleep(5); + + ts->point_num = CT365_POINT_NUM; + + ct365 = kzalloc(sizeof(struct ct365_priv), GFP_KERNEL); + if(!ct365){ + dev_err(ts->dev, "No memory for ct36x"); + return -ENOMEM; + } + + return 0; +} + +static void ct365_deinit(struct ct36x_data *ts) +{ + struct ct365_priv *ct365 = ts->priv; + + ct365_deinit_hw(ts); + kfree(ct365); + ts->priv = NULL; + + return; +} + +static int ct365_suspend(struct ct36x_data *ts) +{ + int ret = 0; + char buf[3]; + + buf[0] = 0xFF; + buf[1] = 0x8F; + buf[2] = 0xFF; + ret = ct36x_write(ts, buf, 3); + if(ret < 0) + dev_warn(ts->dev, "CT365 suspend: i2c write(0xff, 0x8f, 0xff) error\n"); + msleep(3); + + buf[0] = 0x00; + buf[1] = 0xAF; + ret = ct36x_write(ts, buf, 2); + if(ret < 0) + dev_warn(ts->dev, "CT365 suspend: i2c write(0x00, 0xaf) error\n"); + msleep(3); + + return ret; +} + +static int ct365_resume(struct ct36x_data *ts) +{ + int i, ret = 0; + char buf[2]; + + /* Hardware reset */ + ct365_reset_hw(ts); + + buf[0] = 0x00; + buf[1] = 0x5A; + ret = ct36x_update_write(ts, 0x7F, buf, 2); + if(ret < 0) + dev_warn(ts->dev, "CT365 resume: i2c update write(0x00, 0xaf) error\n"); + msleep(3); + + for(i = 0; i < ts->point_num; i++){ + input_mt_slot(ts->input, i); + input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); + } + input_sync(ts->input); + + return 0; +} + +static void ct365_report(struct ct36x_data *ts) +{ + int i, ret = 0; + int sync = 0, x, y; + int len = sizeof(struct ct365_finger_data) * ts->point_num; + struct ct365_priv *ct365 = ts->priv; + + ret = ct36x_read(ts, ct365->buf, len); + if(ret < 0){ + dev_warn(ts->dev, "Failed to read finger data\n"); + return; + } + + ct36x_dbg(ts, "Read fingers data:\n"); + + ct365->press = 0; + for(i = 0; i < ts->point_num; i++){ + ct36x_dbg(ts, "pst[%d]: id: %d, status: %d, area: %d, pressure: %d\n" + "xhi: %d, xlo:%d, yhi: %d, ylo: %d\n", + i, ct365->pts[i].id, ct365->pts[i].status, ct365->pts[i].area, ct365->pts[i].pressure, + ct365->pts[i].xhi, ct365->pts[i].ylo, ct365->pts[i].yhi, ct365->pts[i].ylo); + + if((ct365->pts[i].xhi != 0xFF && ct365->pts[i].yhi != 0xFF) && + (ct365->pts[i].status == 1 || ct365->pts[i].status == 2)){ + x = (ct365->pts[i].xhi<<4)|(ct365->pts[i].xlo&0xF); + y = (ct365->pts[i].yhi<<4)|(ct365->pts[i].ylo&0xF); + ct365->x = ts->orientation[0] * x + ts->orientation[1] * y; + ct365->y = ts->orientation[2] * x + ts->orientation[3] * y; + if(ct365->x < 0) + ct365->x = ts->x_max - ct365->x; + if(ct365->y < 0) + ct365->y = ts->y_max - ct365->y; + + input_mt_slot(ts->input, ct365->pts[i].id - 1); + input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, true); + input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR, 1); + input_report_abs(ts->input, ABS_MT_POSITION_X, x); + input_report_abs(ts->input, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input, ABS_MT_PRESSURE, ct365->pts[i].pressure); + + sync = 1; + ct365->press |= 0x01 << (ct365->pts[i].id - 1); + } + } + ct365->release &= ct365->release ^ ct365->press; + for(i = 0; i < ts->point_num; i++){ + if ( ct365->release & (0x01<input, i); + input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); + sync = 1; + } + } + ct365->release = ct365->press; + + if(sync) + input_sync(ts->input); + + return; +} +struct ct36x_ops ct365_ops = { + .init = ct365_init, + .deinit = ct365_deinit, + .suspend = ct365_suspend, + .resume = ct365_resume, + .report = ct365_report, +}; diff --git a/drivers/input/touchscreen/ct36x/ct36x_priv.h b/drivers/input/touchscreen/ct36x/ct36x_priv.h new file mode 100644 index 000000000000..5640eb36fa2f --- /dev/null +++ b/drivers/input/touchscreen/ct36x/ct36x_priv.h @@ -0,0 +1,105 @@ +#ifndef __CT36X_PRIV__ +#define __CT36X_PRIV__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#if 1 +#define ct36x_dbg(ts, format, arg...) \ + dev_printk(KERN_INFO , ts->dev , format , ## arg) +#else +#define ct36x_dbg(ts, format, arg...) +#endif + +#define CT36X_I2C_RATE (100 * 1000) +struct ct36x_data; + +struct ct36x_ops{ + int (*init)(struct ct36x_data *); + void (*deinit)(struct ct36x_data *); + int (*suspend)(struct ct36x_data *); + int (*resume)(struct ct36x_data *); + void (*report)(struct ct36x_data *); +}; +struct ct36x_data{ + int irq; + int model; + int x_max; + int y_max; + int orientation[4]; + int point_num; + + struct ct36x_gpio rst_io; + struct ct36x_gpio irq_io; + + struct device *dev; + struct i2c_client *client; + + struct input_dev *input; + +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + struct ct36x_ops *ops; + void *priv; +}; + +static inline int ct36x_read(struct ct36x_data *ts, char *buf, int len) +{ + return i2c_master_normal_recv(ts->client, buf, len, CT36X_I2C_RATE); +} + +static inline int ct36x_write(struct ct36x_data *ts, char *buf, int len) +{ + return i2c_master_normal_send(ts->client, buf, len, CT36X_I2C_RATE); +} + +static inline int ct36x_update_read(struct ct36x_data *ts, unsigned short addr, char *buf, int len) +{ + int ret; + unsigned short bak = ts->client->addr; + + ts->client->addr = addr; + ret = ct36x_read(ts, buf, len); + ts->client->addr = bak; + + return ret; +} + +static inline int ct36x_update_write(struct ct36x_data *ts, unsigned short addr, char *buf, int len) +{ + int ret; + unsigned short bak = ts->client->addr; + + ts->client->addr = addr; + ret = ct36x_write(ts, buf, len); + ts->client->addr = bak; + + return ret; +} +int ct36x_chip_set_idle(struct ct36x_data *ts); +int ct36x_chip_get_binchksum(void); +int ct36x_chip_get_fwchksum(struct ct36x_data *ts); +int ct36x_chip_go_bootloader(struct ct36x_data *ts); +int ct36x_chip_get_fwchksum(struct ct36x_data *ts); +int ct36x_chip_get_ver(struct ct36x_data *ts); + +#endif diff --git a/drivers/input/touchscreen/ct36x/ct36x_ts.c b/drivers/input/touchscreen/ct36x/ct36x_ts.c new file mode 100644 index 000000000000..b57eda4db4d3 --- /dev/null +++ b/drivers/input/touchscreen/ct36x/ct36x_ts.c @@ -0,0 +1,291 @@ +#include "ct36x_priv.h" + +#include "core.c" +#include "ct360.c" +#include "ct365.c" + +int inline ct36x_set_ops(struct ct36x_data *ts, int model) +{ + switch(model){ + case 360: ts->ops = &ct360_ops; break; + case 365: ts->ops = &ct365_ops; break; + default: return -EINVAL; + }; + + return 0; +} + +#ifndef CONFIG_CT36X_TS //make modules +static int en = 0; +module_param(en, int, 0644); + +static int model = -1; +module_param(model, int, 0644); + +static int i2c = -1; +module_param(i2c, int, 0644); + +static int addr = -1; +module_param(addr, int, 0644); + +static int x_max = -1; +module_param(x_max, int, 0644); + +static int y_max = -1; +module_param(y_max, int, 0644); + +static int irq = -1; +module_param(irq, int, 0644); + +static int rst = -1; +module_param(rst, int, 0644); + +static int ct36x_check_param(void) +{ + if(en != 1) + return -EINVAL; + if(model < 0) + return -EINVAL; + if(i2c < 0) + return -EINVAL; + if(addr <= 0x00 || addr >=0x80) + return -EINVAL; + if(x_max <= 0 || y_max <= 0) + return -EINVAL; + + return 0; +} + +static struct ct36x_platform_data ct36x_pdata; + +static struct i2c_board_info __initdata ct36x_info = { + .type = CT36X_NAME, + .flags = 0, + .platform_data = &ct36x_pdata, +}; + +static int ct36x_add_client(void) +{ + struct port_config ct36x_rst, ct36x_irq; + + ct36x_pdata.model = model; + ct36x_pdata.x_max = x_max; + ct36x_pdata.y_max = y_max; + + ct36x_rst = get_port_config(rst); + ct36x_pdata.rst_io.gpio = ct36x_rst.gpio; + ct36x_pdata.rst_io.active_low = ct36x_rst.io.active_low; + + ct36x_irq = get_port_config(irq); + ct36x_pdata.irq_io.gpio = ct36x_rst.gpio; + ct36x_pdata.irq_io.active_low = ct36x_rst.io.active_low; + + ct36x_info.addr = addr; + + return i2c_add_device(i2c, &ct36x_info); +} +#endif + +static irqreturn_t ct36x_irq(int irq, void *data) +{ + struct ct36x_data *ts = data; + + disable_irq_nosync(ts->irq); + if(ts->ops->report) + ts->ops->report(ts); + + enable_irq(ts->irq); + + return IRQ_HANDLED; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ct36x_ts_early_suspend(struct early_suspend *h) +{ + struct ct36x_data *ts = container_of(h, struct ct36x_data, early_suspend); + + ct36x_dbg(ts, "<%s> touchscreen suspend\n", CT36X_NAME); + + disable_irq_nosync(ts->irq); + + if(ts->ops->suspend) + ts->ops->suspend(ts); + +} + +static void ct36x_ts_late_resume(struct early_suspend *h) +{ + struct ct36x_data *ts = container_of(h, struct ct36x_data, early_suspend); + + ct36x_dbg(ts, "<%s> tochscreen resume\n", CT36X_NAME); + if(ts->ops->resume) + ts->ops->resume(ts); + + enable_irq(ts->irq); +} +#endif + +static int ct36x_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + int ret = 0, i; + struct ct36x_data *ts = NULL; + struct ct36x_platform_data *pdata = client->dev.platform_data; + + if(!pdata){ + dev_err(&client->dev, "no platform data\n"); + return -EINVAL; + }; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C-Adapter doesn't support I2C_FUNC_I2C\n"); + return -ENODEV; + } + + ts = kzalloc(sizeof(struct ct36x_data), GFP_KERNEL); + if(!ts){ + dev_err(&client->dev, "No memory for ct36x"); + return -ENOMEM; + } + ts->model = pdata->model; + ts->x_max = pdata->x_max; + ts->y_max = pdata->y_max; + ts->rst_io = pdata->rst_io; + ts->irq_io = pdata->irq_io; + + for(i = 0; i < 4; i++) + ts->orientation[i] = pdata->orientation[i]; + + ts->client = client; + ts->dev = &client->dev; + + i2c_set_clientdata(client, ts); + + ret = ct36x_set_ops(ts, pdata->model); + if(ret < 0){ + dev_err(ts->dev, "Failed to set ct36x ops\n"); + goto err_ct36x_set_ops; + } + + if(ts->ops->init){ + ret = ts->ops->init(ts); + if(ret < 0){ + dev_err(ts->dev, "Failed to init ct36x chip\n"); + goto err_ct36x_init_chip; + } + } + + ts->input = input_allocate_device(); + if(!ts->input){ + ret = -ENODEV; + dev_err(ts->dev, "Failed to allocate input device\n"); + goto err_input_allocate_device; + } + + ts->input->name = CT36X_NAME; + ts->input->dev.parent = &client->dev; + set_bit(EV_ABS, ts->input->evbit); + set_bit(INPUT_PROP_DIRECT, ts->input->propbit); + input_mt_init_slots(ts->input, ts->point_num); + input_set_abs_params(ts->input, ABS_MT_POSITION_X, 0, pdata->x_max, 0, 0); + input_set_abs_params(ts->input, ABS_MT_POSITION_Y, 0, pdata->y_max, 0, 0); + input_set_abs_params(ts->input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + + ret = input_register_device(ts->input); + if(ret < 0){ + dev_err(ts->dev, "Failed to register input device\n"); + goto err_input_register_devcie; + } + +#ifdef CONFIG_HAS_EARLYSUSPEND + ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + ts->early_suspend.suspend = ct36x_ts_early_suspend; + ts->early_suspend.resume = ct36x_ts_late_resume; + register_early_suspend(&ts->early_suspend); +#endif + ts->irq = gpio_to_irq(ts->irq_io.gpio); + ret = request_threaded_irq(ts->irq, NULL, ct36x_irq, IRQF_ONESHOT, CT36X_NAME, ts); + if(ret < 0){ + dev_err(ts->dev, "Failed to request threaded irq\n"); + goto err_request_threaded_irq; + } + + dev_info(ts->dev, "CT363 Successfully initialized\n"); + return 0; +err_request_threaded_irq: + unregister_early_suspend(&ts->early_suspend); + input_unregister_device(ts->input); +err_input_register_devcie: + input_free_device(ts->input); +err_input_allocate_device: + if(ts->ops->deinit) + ts->ops->deinit(ts); +err_ct36x_init_chip: +err_ct36x_set_ops: + i2c_set_clientdata(client, NULL); + kfree(ts); + return ret; +} + +static int ct36x_ts_remove(struct i2c_client *client) +{ + struct ct36x_data *ts = i2c_get_clientdata(client); + + free_irq(ts->irq, ts); + if(ts->ops->deinit) + ts->ops->deinit(ts); + unregister_early_suspend(&ts->early_suspend); + input_unregister_device(ts->input); + input_free_device(ts->input); + i2c_set_clientdata(client, NULL); + kfree(ts); + + return 0; +} + +static const struct i2c_device_id ct36x_ts_id[] = { + { CT36X_NAME, 0 }, + { } +}; +static struct i2c_driver ct36x_ts_driver = { + .probe = ct36x_ts_probe, + .remove = ct36x_ts_remove, + .id_table = ct36x_ts_id, + .driver = { + .owner = THIS_MODULE, + .name = CT36X_NAME, + }, +}; + +static int __init ct36x_ts_init(void) +{ +#ifndef CONFIG_CT36X_TS //make modules + int ret = 0; + + ret = ct36x_check_param(); + if(ret < 0){ + pr_err("<%s> Param error, en: %d, model:%d, i2c: %d, addr: %d, x_max: %d, y_max: %d\n", + CT36X_NAME, en, model, i2c, addr, x_max, y_max); + return ret; + } + + ret = ct36x_add_client(); + if(ret < 0){ + pr_err("<%s> Failed to add client, i2c: %d, addr: %d\n", CT36X_NAME, i2c, addr); + return ret; + } +#endif + return i2c_add_driver(&ct36x_ts_driver); +} + +static void __exit ct36x_ts_exit(void) +{ + i2c_del_driver(&ct36x_ts_driver); +} + +module_init(ct36x_ts_init); +module_exit(ct36x_ts_exit); + +MODULE_DESCRIPTION("CT36X Touchscreens Driver"); +MODULE_LICENSE("GPL"); + diff --git a/include/linux/ct36x.h b/include/linux/ct36x.h new file mode 100644 index 000000000000..c3121ddda92a --- /dev/null +++ b/include/linux/ct36x.h @@ -0,0 +1,23 @@ +#ifndef __LINUX_CT36X__ +#define __LINUX_CT36X__ + +#define CT36X_NAME "ct36x_ts" + +struct ct36x_gpio{ + int gpio; + int active_low; +}; + +struct ct36x_platform_data{ + int model; + + int x_max; + int y_max; + + struct ct36x_gpio rst_io; + struct ct36x_gpio irq_io; + + int orientation[4]; +}; + +#endif